O driver deve conhecer todos os discriminadores para desserializar qualquer classe sem erros. Existem duas maneiras de fazê-lo:
1. Registre-o globalmente durante o início do aplicativo:
BsonClassMap.RegisterClassMap<Type1>();
BsonClassMap.RegisterClassMap<Type2>();
2.Ou através dos BsonKnownTypes atributo:
[BsonKnownTypes(typeof(Type1), typeof(Type2)]
public class BaseType
{
}
Se você usar #1 ou #2, sua desserialização funcionará corretamente.