This is a great document regarding caller ID:
That is for outbound caller ID. But also applies when user calls another user on the sip trunk.
Default operating mode is when a call comes in from a voice user, it will look at sip trunks first. So even if a FXS users calls another FXS user it go in this order: FXS User 1 > switchboard > SIP Trunk > Softswitch > SIP Trunk > Switchboard > FXS User 2
So when the FXS places a call the external caller ID is used unless you have a ani substitution applied on your outbound sip trunk. That always over rides it. The document above shows order.
The Internal caller id is really designed to be used with our NetVanta 7100 IP PBX and not with the IPBG products.
If you post your config, I can look over it and see if it configured properly for what you are desiring.
Hope that makes sense.