There are a lot of variables in the mix here. In troubleshooting I'd try to break it into smaller chunks. For example, I'd point a DID at main site to a specific phone at secondary site and watch for caller ID. If it works, now point the number at an ext on first site, have user transfer to second site. If it still works, send call back to HG.
This way you'll get a clue where it's "breaking" and can troubleshoot from there.