So this is probably a bit outside of the scope of this forum, but I think the issue you are facing is more architectural than configuration.
From what you have said thus far this is what I conclude your network to look like.
FreePBX (10.0.5.174) ---- FW ------- WAN ---- FW ---- SIP Client A (192.168.0.1)
|__FW SIP Client B (10.2.2.8)
In short you have Remote Users logging into the hosted PBX. So they are behind their own firewall etc.
If client A calls Client B, the problem is the Private IP Address of the FreePBX installation is showing Call List of the client, so when you goto Redial, it doesn't have the correct address information.
If all of my assumptions are correct, you shouldn't be resolving this from the Clients configuration. In stead you have two options.
Dynamic WAN IP - then you must use a Firewall with ASA type capabilities. Meaning it can translate IP Addresses in the SIP/SDP Payload to the current WAN IP.
Static IP - if you have a firewall with the above capabilities, then great. If not the other option is to configure it in the FreePBX. Under Settings -> Asterisk SIP Settings. You should look at the NAT Settings. Define your external address, local network (if you have any internal calls). Then also review RTP Port ranges and make sure are inline with your port forwarding rules on your firewall.