The most obvious cause is that the requests are being routed to different servers/sites. One for internet requests and one for private network requests.
Do an NSlookup in each case to get the IP for the site name and then try to track down where that goes.
When you test, use a unique page name or query string to identify where the test is coming from.
Https://www.mysite.com/testfromhomeovervpn.htm or Https://www.mysite.com/testovertheinternet.htm
Make note of which url returns the header. Then check the IIS log for the site and verify that you see all of your tests in the log. If you don't, then the request is going somewhere else.