For now I fixed it by adding this in the Serialize method:
if (string.IsNullOrEmpty(value.Id))
{
value.Id = ObjectId.GenerateNewId().ToString();
}
but leaving this thread open because I do want to know if I’m using the base serializer wrong or if this is the correct way to do it