Solved:
Issue was caused by "feature" of protobuf-net
Order 0 is discarded by protobuf-net (Does protobuf-net support [DataMember(Order=0)]?):
[Datacontract(Namespace = "http://lorem")]
public class MyCustomData {
[DataMember(Order = 0)]
public int Dummy { get; set; } // had to define, otherwise I get invalid wire-type exception
[DataMember(Order = 1)]
public Guid Id { get; set; } // now ok
[DataMember(Order = 2)]
public int MyInt { get; set; } // serializes/deserializes ok
}