Ich habe, in ähnlichen Situationen, ganz gute Erfahrung damit gemacht, einfach eine
unit zu schreiben in der eine neue Komponente mit gleichem Namen abgeleitet wird, also in der Art
TPNGList = class(TImageList)
damit lässt sich, nach dem Hinzufügen ein paar (leerer) Emulationsfunktionen in der neuen Klasse, der Code wieder kompilieren und man kann dann nach und nach die Komponente ganz ersetzen und die alte Funktion wieder herstellen.
(Was die TImageList anbelangt - ich halte die für ungeeignet wenn man man viele Icons benötigt. Ich selber verwende ein System, welches dynamisch Images in passender Auflösung aus einer SVG Quelle erstellt.)