>You have UsePreviousAppDir=yes, which tells Inno Setup to check the registry to see if the product is already installed, and if so to use the same directory as before. Change to UsePreviousAppDir=no and see if that resolves the issue.
Found it - I had set CreateUninstallRegKey to "no" (as this is for updates - no uninstalls), but this key was actually where Inno looks for the last install directory. As soon as I set it to yes, my luck magically changed :).