Isso é limítrofe para ser um bug no driver C#. Acontece que IdMemberMap não é definido até que o mapa de classe seja "congelado", por motivos relacionados a hierarquias de classe nas quais o Id pode realmente ser definido em uma classe base. Uma maneira de contornar isso é:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.Freeze();
cm.IdMemberMap.SetRepresentation(BsonType.ObjectId);
});
Outra maneira de contornar é usar GetMemberMap em vez de IdMemberMap:
BsonClassMap.RegisterClassMap<Person>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});