From what I can recall of Windows filename API's, in the shift from the DOS 8.3 (8 character filename, 3 character extension) naming to long names (in Win95) the older 8.3 filename calls truncated the file using ~'s and numbers. If you are then using the same DOS API calls to try and create "PHOTOS~1.JPG_original" then it breaks the 8.3 naming convention and the call will fail.
It's been so long (10 years) since I did this I can't recall the name of the long filename aware API, but it might give you a place to start looking, if that helps: it's also easy to test - stop ExifTool from backing up the changes by using the "-overwrite_original" flag and see if it works (but please take care to do this on a copy of your images !).
--
Ian Spray