That's sounds like that the message is committed and the entity not. i.e all entities are stored after the work is done from the Singleton but the JMS message get's fired (committed) direct and therefore the first messages will be processed and the entity is not written.
How do you access the entity and the message.
I would call another bean with (requiresNew tTx) which mark the entity and fire the message.
It turned out that we have real hardware problems on the database server. These issues slowed the disks so much down until the transaction handling stopped working.
It looks like I have been chasing phantoms and the issues have not been JBoss related after all.
We'll fix this on Monday. I'll re-run the tests to see if this is the right conclusion.
Thank you for trying to help