Я считаю, что проблема в вашем защищенном сабе.Если вы измените его на Public, вы сможете правильно сериализовать.
Update
У меня не было проблем с сериализацией экземпляра по умолчанию с использованием BinaryFormatter:
Dim abData As Byte()
Using oStream As New MemoryStream
Call (New BinaryFormatter).Serialize(oStream, CoordinateHistory.getInstance())
abData = oStream.ToArray()
End Using
или XMLFormatter:
Dim sData As String
Using oStream As New MemoryStream
Dim oSerializer As New XmlSerializer(CoordinateHistory.getInstance().GetType)
oSerializer.Serialize(oStream, CoordinateHistory.getInstance())
sData = Encoding.Default.GetString(oStream.ToArray())
End Using
Возможно, вы используете платформу сериализации?