The jms: object-to-jmsmessage-transformer fails to set the correlation ID if it is contained in the inbound scope instead of the outbound scope (which probably is when the correlation ID has been set in a previous service).
The class org.mule.transport.jms.transformers. AbstractJmsTransformer iterates through all outbound properties and sets the correlationID when it reaches MULE_CORRELATION_ID_PROPERTY. The correlation ID doesn´t necessarily have to be defined as outbound property (which can also be seen in org.mule. DefaultMuleMessage#getCorrelationId()). I´ll attach a suggestion for a fix of this bug.
As temporary workaround one can add the correlation ID to the outbound scope using the following message-property-transformer:
<message-properties-transformer scope="outbound">
<add-message-property key="MULE_CORRELATION_ID" value="#[mule:message.correlationId]" />
</message-properties-transformer>