From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
Rocky
I think there's a bug already recorded for DateTimeOffset not working.
MobileFormatter only handles "primitive types", though we've augmented that definition by adding a few well-known common types like Guid, etc. Actually it is DataContractSerializer that is the limitation here, not really MobileFormatter itself, but you get the idea.
Of course any IMobileObject works too - so primitive types, IMobileObject types and the few extra types we added are the only support field types.
This means that you do need to make your enum into some primitive type. Enums are pretty easy though, since they always convert into a numeric, so you might consider just making the internal type int and the external type your enum. I think SetPropertyConvert() will handle this automatically - I made CoerceValue() handle enums a long time ago.