It will work just fine. Raven uses Json.Net for it's serialization, which will add a $type property to your data so it can be properly deserialized to the correct type.
Assuming your fields look something like this:
public class Field
{
public string Name {get; set;}
}
public class FieldDerived1 : Field
{
public int Length {get; set;}
}
public class FieldDerived2 : Field
{
public string Color {get; set;}
}
Raven will store the Form class like this:
{
Fields: [
{
"$type": "YourNamespace.FieldDerived1, YourAssembly",
"Name": "foo",
"Length": 10
},
{
"$type": "YourNamespace.FieldDerived2, YourAssembly",
"Name": "bar",
"Color": "blue"
}
]
}