вызывается виртуальный метод TObject.Destroy; виртуальный здесь ключевое! виртуальные методы хранятся в спецтабличке
Вы же разместили свой деструктор вне этой таблицы сделав его статичным.
статичным он стал потому что нет правильного модификатора, по факту Вы написали destructor Destroy;пусто;
модификатор overload - это из оперы несколько методов с одним названием.
Destroy вызывается у всех типов в цепочке наследования кроме вашего типа, для вашего типа виртуальный Destroy не определен