Did you ever use the remote's learning process in that device mode?
Loading and selecting an upgrade does not remove any learned signals, KeyMoves, or macros that may have been defined before, and any of those would have priority over the definitions in the upgrade.
If any functions of an upgrade work, the whole process is nearly right. Most errors in the upgrade that are possible at that point would put functions on the wrong keys, so a key would do the wrong function rather than do nothing.
I assume you're testing with two remotes, the 9960 and the original. When doing that, you should understand the "toggle bit" in the RC5 protocol. That means there are actually two different versions of each function and the device won't accept the same exact signal (function and version) twice in a row. Each remote will alternate which version it sends. But if you send a command with one remote, then send the same command with the other it might be the same version and not work, but then would work if you pressed it again. (If you use learned signals rather than an upgrade then the same version is sent every time and you can get it accepted only by sending a different command in between).
For eject, it would be good to find out if it needs a long press or just needed to be aimed better, or was that issue of testing with both remotes, or if it somehow really needs to be pressed twice.
For other commands, more detailed testing will probably tell me what needs to be fixed.