The RegionBroker contains the following logic, which overwrites the JMSTimestamp. FWIU, the message timestamp should be set once at send and never changed by the broker.
if (message.getTimestamp() > 0 && (message.getBrokerPath() == null || message.getBrokerPath().length == 0)) {
//timestamp not been disabled and has not passed through a network
message.setTimestamp(System.currentTimeMillis());
}
Attached is a simple test case and patch that changes the '>' in the if statement above to '<='. I'm not sure if that is the proper fix, but it did make my problem go away.