Erstens wäre Code hilfreich wie Uwe geschrieben hat.
Zweitens könntest du aber vielleicht auch selbst debuggen:
Was passiert denn, wenn du Delphi nach dem Programm startest und den Filter verwendest (wobei die Liste ja neu aufgebaut werden dürfte)? Ist die Liste dann vollständig?
Wenn dann der Fehler immer noch passiert, könntest du Delphi an den laufenden Prozess anhängen (Menü Start --> Mit Prozess verbinden).
https://docwiki.embarcadero.com/RADS...zess_verbinden
Dann kannst du normal debuggen.
Außerdem könntest du einen Button einbauen, der einfach mal die vorhandenen Komponenten und ihre Positionen auflistet. Und du könntest beim Erzeugen der Komponenten diese Information in eine Datei schreiben. Das lässt sich dann leicht vergleichen.