Have you tried asking them to install it to "C:\MyApp" instead of "C:\Program Files\MyApp", and set it to use AppPath$ as the serial ini location as a test? (you can put two serial retrievals in. One to check the AppPath$ for the ini, if not found then try %ProgramData%, for future compatibility)
If that works (ini stored in AppPath$, and AppPath$ is NOT "C:\Program Files\"), then it could be due to a permissions issue with %ProgramData%.
You can also ask that they browse to C:\ProgramData\MyApp (when app is installed there) and send the ini to you in an email for troubleshooting. If their ini file isn't there, they don't have write access. If the serial number's not in there, the app either isn't saving it for some reason (might be an anti-virus app stopping it, etc.), OR they don't have permissions to modify the file.