Interesting... I am surprised you could access the parent at all in any server. Binding by guid has the disadvantage that you cannot determine the parent or children of an object because they are not loaded when initially bound.
There is a work-around for this. You need to rebind to the object using it's distinguishedName, and then .Parent will work for you:
Dim sobjectGUID As String = "b967ce0b-019f-4595-98cf-717a3fe5fc0f"
Dim oDe As New DirectoryEntry("LDAP://domain.com/<guid=" & sobjectGUID & ">", "username", "password")
oDe = new DirectoryEntry("LDAP://" & oDe.Properties("distinguishedName")(0).ToString(), "username", "password")
oDe = oDe.Parent
Something similar to this should work...