Secondo questo bug (fisso il 21 gennaio 2011 alle 05:46:23 UTC) , nel driver ufficiale c# è stata aggiunta l'abilità "AllowTruncation". Quindi devi scaricare l'ultima versione del driver e divertiti! Inoltre, invece di SetRepresentation puoi usare BsonRepresentationAttribute in questo modo:
public class C {
[BsonRepresentation(BsonType.Double, AllowTruncation=true)]
public decimal D;
}