Вы значение очищаете в самой базе, а нужно еще значение очистить и на форме HTML.
По поводу этого кода: this.Договор.Value = DBNull.Value;
DBNull.Value - значение другое возвращает, хотя так работать тоже будет.
Мне кажется, что более правильнее будет так:
private void Контрагент_ValueChanged(System.EventArgs eventArgs)
{
//Получаем пустую ссылки на справочник договоры
_1C.V8.Data.ObjectRef PustoeZnach = new _1C.V8.СправочникСсылка_Договоры();
//Очищяем в базе значение
this.Договор.Value = PustoeZnach;
//Очищяем значение на форме
this.Договор.Presentation = "";
}