Проблема в том, что в обратной передаче будут доступны только те данные, которые включены в обратную передачу на сервер. Это включает в себя все, что связано с BoundFields, TemplateFields или если имя свойства включено в DataKey (или DataKeyNames, сейчас не знаю).
Лучший способ исправить это и свести к минимуму накладные расходы - добавить ваш первичный ключ в коллекцию DataKeyNames. Это позволяет вам иметь доступ к вашему пользовательскому объекту, который содержит уникальный идентификатор и все свойства, которые только что изменились.
В вашем методе обновления ODS (в вашем пользовательском классе) вам теперь нужно извлечь старый объект по его уникальному идентификатору, вручную присвоить новые значения и сохранить ваш объект обратно в базу данных