On one of the VM's which had the incorrect time, in command prompt I ran
w32tm /query /source
This returned 'VM IC Time Syncronization Provider' which means the VM is getting it's time from the Hyper-V host it resides on.
It returned 'Local CMOS Clock' which means it was getting its time from the BIOS.
The Hyper-V host should be getting it's time from the domain controller. In command prompt on the Hyper-V host, run w32tm /config /syncfromflags:DOMHIER
Verify the time source is now the domain controller by running w32tm /query /source
The name of the domain controller should be returned.
TheVIrtual Machine will still be using the Hyper-V host as its time source (and the Hyper-V host will be using the domain controller as it's time source). If you did want to break the link and set the VM use the domain controller directly, you can do this in Hyper-V Manager
Right-click on the VM and click Settings
Under 'Management', click Intergration Services
Untick 'Time syncronisation'
If you now run w32tm /query /source on the VM, it should now be using the DC as the time source. If not, run w32tm /config /syncfromflags:DOMHIER