У вас есть несколько вариантов.
Если ваш тип внутренне знает, что изменилось, вы можете использовать тот же шаблон, что и XmlSerializer (IIRC), т.е.
[ProtoMember(12)]
public string Foo {get;set;}
public bool ShouldSerializeFoo() {
return ... true if Foo is dirty
}
Второй вариант - создать модель на лету и рассказать ей только об измененных членах. Тем не менее, поскольку по умолчанию это приведет к генерации большого количества динамического кода (со временем), вы можете установить для AutoCompile значение fse для этого случая.
Третий вариант - сериализация вручную через ProtoWriter. Вероятно, для этого требуется больше ноу-хау по протоколу, чем желательно.