Это не «решение» проблемы, а скорее объяснение того, что происходит. Данные изображения для данного списка изображений сохраняются в виде двоичного двоичного объекта данных. Этот блок данных получается из базовой реализации IMAGELIST из comctl32.dll.
Вероятно, происходит то, что по какой-то причине реализация Windows в comctl32.dll по-разному передает данные изображения между экземпляром «предка» и экземпляром «потомка». Для Windows нет никакой связи между этими двумя экземплярами.
Способ наследования форм работает так, что он выполняет сравнение свойств за свойством между «потомком» и «предком» во время потоковой передачи, чтобы определить, следует ли записать данное свойство в форму. Поскольку данные изображения представляют собой непрозрачный двоичный объект goo, все, что мы можем сделать - это побайтное сравнение между тем, что пишет экземпляр TImageList на предке, и тем, что пишет экземпляр TImageList на потомке. Если бы отличался только один байт, потоковая система не имела бы другого выбора, кроме как записать данные из экземпляра-потомка при условии, что что-то изменилось. Например (и я не знаю деталей, так как он непрозрачен), если капля goo содержала временную метку, вполне возможно, что каждый раз, когда она записывается, данные будут отличаться.