XACT_ABORT OFF vs COMMIT in trigger
If you have no other code in the trigger that should be allowed to cancel the INSERT, then try the following:


Keep the XACT_ABORT OFF
Put the COMMIT TRAN back
Add a BEGIN TRAN at the end of the trigger


This should be the same issue as if you have an open transaction, exec a proc, and in that proc do a ROLLBACK (or even just a BEGIN TRAN and no COMMIT or ROLLBACK): it will error saying value of @@TRANCOUNT is different between entering and exiting the proc.