[BsonDefaultValue("")] ma zastosowanie tylko podczas odczytywania dokumentu z bazy danych, który nie ma wartości dla odpowiedniego pola. Jeśli chcesz, aby nowe obiekty tworzone w pamięci miały wartość inną niż null, musisz ustawić tę wartość w swoim konstruktorze. Ponadto, gdy zapisujesz obiekt w bazie danych, jeśli pole jest puste, to właśnie to jest zapisywane i odczytywane.
Więc po prostu ustaw wartość domyślną w swoim konstruktorze, aby obsługiwał nowe obiekty utworzone w pamięci (i prawdopodobnie wstawione do bazy danych) i użyj [BsonDefaultValue] do obsługi odczytywania dokumentów, które mogą nie mieć odpowiedniego pola.