OK, for anybody who has a similar issue here's what I did:
Stub the GPU and bind VFIO as per Ghost's recommendations.
Create a new VM, use SeaBIOS and Q35-5.1, hyper-v disabled.
Have a monitor connected, and a usb input device passed through.
Follow SpaceInvader One's GPU Passthrough instructions EXCEPT for specifying the vbios. Don't specify one at all.
Boot the VM.
Celebrate.
I stumbled on this completely by accident while trying many, many combinations. Glad I found one that stuck. I hope this post saves someone else the dozen or so hours I've invested trying to fix this issue.