Looked at some other posts, it seems it probably does have something to do with my old XO. This is no longer active, can I re-associate the VMs with my current XO instance? I imported my config from a backup, so I thought that would cover it, my new XO instance spun up exactly like the old one.
Broken snapshot (logs show it initiated from the pool master's IP):
5505 HTTPS 123.456.789.2->:::80|Async.VM.snapshot
ALLOWED' 'OK' 'API' 'VM.snapshot' (('vm' '' '' 'OpaqueRef:cce8c856-3310-a551-7cf3-f3ec6d68903d')
Working snapshot (logs show it initiated from my XO's IP):
62327 HTTPS 123.456.789.6->|Async.VM.snapshot
ALLOWED' 'OK' 'API' 'VM.snapshot' (('vm' 'CCTV' 'cd95df02-a907-bdaa-2c0e-ca503656460b' 'OpaqueRef:00c31a47-69d9-753d-5481-d5a10e881e13')
So it seems that the broken VMs are being initiated from the host they run on, not XO.