IPv6 actually has less overhead because there's no NAT involved and the connection is completely end-to-end. I see this reflected in latency too (although that could also be down to different routing...).
I mean overhead as in how much of the packet sent is usable data, IPv6 has a larger header, so each packet carries less data, of course it also depends on MTU in play how exactly they might compare but like for like you get a bit less throughput on IPv6. Using IPv4 was just to rule out any oddity with IPv6 that might exist for the OP who had been all IPv4 on Virgin, i.e. compare like with like as much as possible to try and troubleshoot.
NAT shouldn't add any overheads (it doesn't make the packet headers larger) and whilst in theory a router might have to do a little bit more with NAT so affecting latency, it's doing it with smaller numbers, and NAT has been around long enough that hardware and software is very well optimised. IPv6 still requires the router to route and a firewall to keep state about the packets and it has to do this with bigger numbers, so really it's swings and roundabouts.
I've never seen any different in latency between the two myself, pinging the old UK favourite bbc.co.uk gives me 6ms on IPv4 via NAT and 6ms on IPv6.