Turns out it didn't have anything to do with OPNSense, Pihole, nor Windows.
The issue was that the RPI had ufw and ufw was not set up to allow calls in from any IPv6 addresses.
// check if ufw is set up to allow ipv6
sudo nano /etc/default/ufw
IPV6=yes
// check current ufw rules and status
sudo ufw status
// enable requests from fdad::/8 (my specific ULA range; you can use fd00::/8 to be more general)
sudo ufw allow from fdad::/8 to any port 53 proto tcp
sudo ufw allow from fdad::/8 to any port 53 proto udp