Seltsam, aber solche mysteriösen Fehler kenne ich auch zur Genüge.
Die habe ich immer durch Zerlegen, Modularisieren und Umstrukturieren versucht einzugrenzen,
und das hat meistens geholfen, oder zumindest tauchte dann ab und zu an ganz anderer Stelle ein Problem auf,
das man fixen konnte.
Oft hat es schon gereicht einfach die Uses aufzuräumen oder anders anzuordnen,
von Interface nach Implementation da wo es geht,
besser aber noch große Units in mehrere Kleine zu zerlegen.
Das mache ich mittlerweile permanent, und acht direkt auf minimale
Unit-Größen.
Ich vermute dass manchmal, je nachdem welche Units wann per Linker eingebunden werden, irgendwelche Timings durcheinandergebracht werden können, und dann kann es irgendwo anders krachen.