Can you describe your current setup(HW/OS)?
https://gist.github.com/xaduha/226ff1b991bd54db09ff0bbd1df79...
snapshot=on option allows me to discard changes to the image with every launch, folders like Desktop, Downloads, etc are not part of the image.
When I do need to keep the changes I use a commit command, not mucking with actual snapshots anymore.
$ virsh qemu-monitor-command MAIN --hmp commit all
As for macOS VM, I haven't used one recently, but it's totally possible.