CallerID is staying the same on every call through connnected PBX

The setup we have requires through one Asterisk, using FreePBX, we setup an extension and then provided the other FreePBX server the username, password, ip, etc or them to enter as a Trunk. Basically one PBX is acting as the service provider for the other PBX. We cannot use IAX Trunks so thats out of the question.
The calls are going through fine, the problem is that every call on the Remote FreePBX is not able to control the outbound CID of its own extensions.

For example when we create the extension on the Source FreePBX, if we leave the outbound CID blank then the extension number is what shows up elsewhere. If we put in XXX-123-234 then XXX1231234 shows up on every outgoing call on the Remote PBX, even if the remote PBX has an outbound cid of XXX-456-4567, it doesnt matter, the source FreePBX overides it.

So if anyone knows on how to overide this that would be great, the alternative is that i have to setup an extra extension on the source FreePBX for each callerID the remote PBX wants to make calls under. then on the remote pbx using different contexts each extension can use a different trunk. this is ugly and i am wondering if there is a way to allow the remote pbx to be able to make calls. i thought leaving outbound CID blank on the source would be enough but it isnt (when no outbound cid is there, the callerid is the extension).
Thanks in advance