Before you make any changes to the DNS setup, we need to verify that your VMclient can connect to devices on the main network.
From the files you sent the client is on ip 172.18.46.118 and has a default route via 172.18.46.113
That says it is in a little 16 host network of its own, ip range 172.18.46.112/28.
assuming the router on 172.18.46.113 is functional, it should be able to connect out.
And indeed your VMhost has a virtual Ethernet adapter with that address.
Your VMhost also has a route
172.18.46.112 255.255.255.240 On-link 172.18.46.113 5256
172.18.46.113 255.255.255.255 On-link 172.18.46.113 5256
which will send traffic back into the little client network.
So within your VMhost everything works (thus why you can reach the pihole from the windows host)
However, your windows VMhost is not a router, running a routing protocol to announce the existence of that 172.18.46.112/28 network to the rest of your network, so outside the VMhost, nobody knows how to find that network.
You could run a routing protocol on that VMhost, but that is rather a sledgehammer to crack a walnut.
I don't know the details of your real router, but most have a provision for adding static routes.
If you configure a static route on the "real" router with a destination of 172.18.46.112/28 (or 172.18.46.112 255.255.255.240 if it uses that notation), and nexthop 10.0.0.88 (the ip address bound to the "real" Ethernet NIC on your VMhost, the rest of your network will send requests for your VMclient to their default gateway (your real router) which will know from the static route to forward that traffic to the VMhost, which knows how to send on into the virtual networK.
There are nasty things call firewalls however, which can get in the way. So test..
Test from the VMhost with:
ping 172.18.46.118
tracert 172.18.46.118
If nothing is being stupid (Windows 10 is stupid by default, Ubuntu is not usually) those requests should complete from the VMhost with or without the static route, but will fail from everywhere else.
after you configure the static route, they should work from any device on your network.
final tests:
From your VMguest
ping 10.0.0.138
traceroute 10.0.0.138
should also now work.
also
ping 8.8.8.8 (google DNS)
traceroute 10.0.0.138
ergo you have access to the internet.
Get to this point, and we can start considering how to integrate pihole into your DNS setup.