You need to use the ProtoInclude attribute on your base class:
[ProtoContract]
[ProtoInclude(500, typeof(SubClass1 ))]
public class BaseClass
{
The id arg (500 in the above example) should be unique to that class. See this article for more information