OK so there are a few issues with this. First, pointing to a 4 year old thread isn’t going to help. Things have changed in the last four years and they could pretty much be irrelevant. Second, you’ve made custom modifications and well that means you’ve changed how FreePBX normally works. That can be an issue. Third, you’re not understanding how this is working in regards to the Addr->IP and the Reg. Contact.
The Reg. Contact is actually what is in the Contact Header sent by the device. The Addr->IP is the Received Address i.e. the public WAN the request came from. So like I said, if you are seeing the Asterisk IP there instead, you have NAT/network configuration issues.
Without seeing what “custom” work you’ve done, no clue as to what the actual issue is. Is there anything different about this box then the others you’ve done? Are they in the same locations? Do they go on-premises?