Caller Id Issue

I have a main freepbx server (2.9) setup and it has 3 different outbound sip trunks to different providers. This server is used as a kind of gate server that I use to feed and filter other freepbx servers inbound and outbound calls.

so now I have 2 servers the Gate with the multiple provider outbound trunks setup and working correctly and server A that has a sip trunk between itself and the gate that is used for outbound calls.

On server A I created a single wildcard outbound route that passes all calls out the sip trunk going to the gate. In the outbound routes of the gate server I have checked intra company route so that the caller id set for the extension on Server A is passed correctly which works fine…

Where this all falls apart is if the first trunk fails (call originating from extension on server A across the sip trunk to gate and the gate passing it out it’s providers trunks) passes the call to the next trunk (since the first in the outbound route failed) I loose the caller id… I know it’s not the outbound trunk because if I reorder the trunks the caller id works with the first trunk in the list but not after a fail… any idea on how I can fix this?