Es ist eine Funktion des MongoDB-Treibers. Es akzeptiert kein einfaches First(), es braucht etwas dahinter. Das habe ich beim Debuggen gesehen. Also solltest du entweder weiter mit First() arbeiten... oder du könntest deinen json direkt abfragen:
var result = collection.Aggregate()
.Group(new JsonProjectionDefinition<People>(@" {
'_id': '$Name',
'docs': { '$push': '$$ROOT' },}"))
.Project<TopOne>(new JsonProjectionDefinition<BsonDocument>(@"{
'top_one': {
'$slice': ['$docs', 1]
} }"))
.ToList();