This happens both when the Optional value is used alone or when it is an internal property of another record that is being Serialized and Deserialized.
Scratch that, all three serialization tools exhibit issues with Optional types, although different:
Built-in serializer: Loses inner value details but no error
MessagePack: Correctly serializes inner value but fails to represent NoneValue on deserialization
FSPickler: Correctly serializes inner value, fails to serialize an Optional with No Value