After a bit more digging, it seems that the TM shows that the transactions were comitted.
Which leads me to believe that the connections returned from the sonic connection factories are not being enroled in the transaction.
Basically I only replaced the actual factories (and pointed JMSProviderLoader) to them.
Is there something special I must do to ensure that the connections get enrolled? Possibly proxy the connection factories and just forcibly enroll them if a tx is active? That won't help for the jta getResource() -> start tx -> enroll previous resource in tx type deal.
I'm thinking that maybe the ejb3 forum is the wrong place for this now? Looks like a generic problem rather than specific to ejb3/mdb