@Pilow Thanks for your reply.
I only have 1 XO currently, the other old one is offline - they're both on the same physical box, just a different Docker container. The old XO is currently downed and has been for a while, it never interacted with this new pool I made either. I downed it, restored my XO config to the new XO, which all worked fine. Steps were:
Down old XO
Up new XO and restore XO config (same IP), all good
Install XCP on new hosts (hardware refresh)
Create pool from new hosts on new XO
Warm migrate VMs from old hosts to new hosts, all good
My old XO server hasn't interacted with any of this, it can't, it would cause a clash by using the same ports. I haven't checked yet today, but I'm hoping it just kind of resolves itself now the audit logs are showing the correct VM info. I feel like it's just a sticky frontend cache of some sort.