If you are showing a 1 hour time difference check that all of your machines – client and DC are in the correct time zone AND that there isn't any differences in the daylight savings time settings. I'd suspect that one or more machines aren't set correctly to manage daylight savings changes
Any reason you're not using the AD cmdlets rather than .NET classes?
Check out Get-ADDomainController. I don't know how the the .NET method is providing the time, but you could try a script like this one and just replace the Get-ADComputer with the Get-ADDomainController and valid the timezones across all of the systems.