The issue I am facing: My issue is that when I set my DNS to pi-hole to causes the server that pi-hole is running on to lose all internet connection to devices outside my local network.
Details about my system: Pi hole is running on a Raspberry Pi 4 and is a fresh install with nothing changed.
What I have changed since installing Pi-hole: Nothing
I can't get a debug token so here is my debug log:
(For your own privacy and safety, don't post your unsanitised debug log publically.)
Did you configure Pi-hole as your router’s
a) upstream DNS server (commonly a WAN/Internet setting),
b) local DNS server (commonly a DHCP setting)
c) both?
I also changed the DNS servers on my router back to the default and now the raspberry pi can access the internet again. I also know that the custom DNS settings are being respected somehow as i set secondary DNS to google's DNS and that showed up as my DNS provider on a leak test instead of my ISP's DNS.
That's looking good - so your client could talk directly to Pi-hole; no interference by your router or by a firewall on your RPi4 Pi-hole machine.
If your router supports it, you could prefer to configure its DHCP server to distribute Pi-hole as local DNS server. That would allow you to identify individual client IPs in Pi-hole's Query Log.
That may also have an impact on your observation regarding your RPi4.
We haven't looked at your RPi's DNS resolution yet, but I can tell from your debug log that your RPi's OS is using your router at 192.168.0.1 for DNS.
Currently, I'd expect that to close a short DNS loop only, as a DNS request from your RPi would be going to your router, and that would then forward it back to your RPi.
As Pi-hole would be receiving it and then forward it to its upstreams (in your case, OpenDNS), it shouldn't loop endlessly.
But let's verify that.
Run from your RPi, what are the results of: