To nie tyle błąd, co niespełnione oczekiwania. Tylko _id najwyższego poziomu jest automatycznie przypisywana wartość. Do wszelkich osadzonych identyfikatorów _id należy przypisać wartości za pomocą kodu klienta (użyj ObjectId.GenerateNewId). Możliwe też, że nie potrzebujesz nawet ObjectId w klasie Address (jaki jest cel?).