Now you're describing the Split DNS scenario in that link I posted. pfSense firewalls feature a DNS resolver that makes accomplishing this very easy but this probably doesn't apply to you. The basic idea is you need a DNS server of some kind inside your LAN that resolves the desired domain name(s) to internal IP addresses when you're connected to your LAN. Then you'll need to edit your DHCP server to hand out the IP address of your internal DNS server to devices connected to the LAN. Those same domain names can be hosted on external DNS servers which would resolve to your public IP address. When you're outside of the LAN, your device will see public DNS servers and not the internal.
You can use one of many dynamic DNS providers to help automatically update your DNS whenever your public IP changes. I have a domain name hosted with CloudFlare and my pfSense firewall has an API that can update my dynamic DNS record whenever the public IP of my firewall changes.
I don't think you're going to have much success with this if you're relying on a Panoramic Wifi router. If hosting your own DNS just isn't an option, you could resort to hacking your hosts file when connected via LAN but you'll have to remember to unhack it when external. For Windows, you'll want to look at the file %WINDIR%\system32\drivers\etc\hosts.