Yeah, the lastLogon property isn't a .NET DateTime value, but instead a 'FileTime' type. When Get-Date tries to parse the string into one, it's failing a little bit on the year and hours. It looks like a byte-order/Endian sort of thing.
But thankfully, the .NET framework is prepared for this, and the DateTime class has a static FromFileTime method to parse the string correctly. Try this instead: