The bug is still present in Cubase 15.0.10 and is extremely annoying.
The main problem is that Cubase also writes MIDI Remote data to the project.
If you open an old project containing a duplicate, it will also corrupt the new project, which previously had no duplicates.
All the workarounds, such as making a backup and restoring the MIDI Remote folders, etc., are just workarounds and take time.
The workaround of deleting greyed-out duplicates via ‘Remove Controller’ actually alters the JSON file by deleting the ports within it.
This is because there is one active controller and several inactive ones, so you end up deleting the port assignments for the active controller as well.
Steinberg needs to ensure that the controller and the ports are unique. When the MIDI Remote is in use, only that one controller should be allowed to access the port. Alternatively, there should be a function to ‘gently’ remove the controller interface of the greyed-out duplicate without Cubase deleting anything else in the files on the fly.
However, I now get the feeling that Steinberg is no longer even aware of these issues.
It really is a great feature, but once again it hasn’t been thought through properly.