After talking with a colleague, I have a rough understanding of this issue now. My understanding is below, though I haven't verified it via further internet research.
Headers are a field type that can be added to a message definition. A pre-defined message cannot simply have a header added to it at runtime (as I thought it could). Because of this, the Message class in rosjava does not have the ability to get the header from the message. Rather, a specific message class that inherits from Message could have a getHeader() method written in for it.
Please feel free to correct any misconceptions here.