Попробовал покопаться в этой проблеме, получил немного сведений.
1. Выбираем объект, происходит первый вызов метода GetGripPoints, рисуются переопределённые ручки - проблем нет. То есть, если ручки не перемещать, то сбоев не возникает.
2. Цепляем ручку, перетаскиваем на новое место. Сразу после перемещения (когда ручка перемещена и кнопка мыши отпущена) происходят ещё два вызова GetGripPoints. При первом вызове не возникает проблем, при втором - при выходе из метода происходит исключение:
Exception thrown: 'System.ArgumentException' in mscorlib.dll
Additional information: Элемент с тем же ключом уже был добавлен. occurred
Полная трассировка исключения:
mscorlib.dll!System.ThrowHelper.ThrowArgumentException(System.ExceptionResource resource) + 0x38 bytes
mscorlib.dll!System.Collections.Generic.Dictionary<System.IntPtr, System.Collections.Generic.List<Autodesk.AutoCAD.DatabaseServices.GripData>>.Insert(System.IntPtr key, System.Collections.Generic.List<Autodesk.AutoCAD.DatabaseServices.GripData> value, bool add) + 0x285 bytes
AcDbMgd.dll!<Module>.AcMgGripOverrule.getGripPoints + 0x013c bytes
Это исключение рушит работу AcDbMgd.dll и потом уже с помощью ручек объект не редактируется и исчезает при попытке переместить ручку - собственно, то самое поведение, которое есть на видео. Думаю, что если дальше продолжать работу после этого исключения, то в какой-то момент вылезет фатал.
Попробовал посмотреть AcMgGripOverrule.getGripPoints в AcDbMgd.dll - класс AcMgGripOverrule помечен как Native, реализации его в этой dll нет. Соответственно, никак не посмотреть, что этот метод делает.