Прочетете за позиционния оператор . В този случай нямате нужда от групови, просто UpdateMany.
collection.UpdateMany(
Builders<RootDocument>.Filter.Eq("Documents.Id", document.Id),
Builders<RootDocument>.Update.Set("Documents.$", document));
Това ще премине през колекцията и ще съпостави всеки RootDocument, който има ChildDocument с посочения идентификатор и впоследствие ще го замени с предоставения документ.