You should try to compare the MSI log files for the install and the re-install.
I have a way to remove the timestamps with Notepad++ if you are interested.
I assume:
you use ALLUSERS=1 during the installations
you reboot after the installation to clear out PFROs.
CAVEAT:
10+ years ago we had 100+ computers with ArcGIS from ESRI and the upgrade was failing.
Long story short: ESRI create sloppy MSIs that cannot uninstall properly. In our situation, it left so much crap after uninstallation that the new version could not install.
I created a script to remove reg entries and files. The Registry file of leftovers had 8000+ lines.
I created a REG file that removes registry keys and values. It took 3+ weeks! The upgrade worked after running the cleanup script.
I later noticed that the MSI contained a script to register DLLs at the end of install but did not run one for uninstall to unregister DLLs.