Hope I can help.
I have a GPU (Nvidia 970) passthrough, that I have put on both VM (one Windows 10, and one Zorin OS, based on Ubuntu). The have globally the same conf, except the Windows is on his own SSD. For the Linux to properly hibernate I had to follow an other topic and tweak around :
But I do not have the <pm>...</pm> lines on my config in order to hibernate the Windows. I remember that it is not activate by default either within the OS : https://www.ubackup.com/windows-11/hibernate-mode-windows-11.html
After that the qemu agent is able to shutdown the VM to disk properly, and I can do a normal virsh start to start the VM.