Had a quick look at this on my test rig. There're some settings in EMULATOR.INI which may be relevant to this. Online docs regaridng settings here:
https://docs.google.com/document/d/1KiKUFqyLXt-HcVD_3drWIy9xI-aIcdQsY07bPiy7T2g/editRelevant bit:
UseRawInput
0 - Normal operation of mice for shooting games.
1 - Enables use of dual mice for shooting games. Will capture any mouse devices using low level inputs and prevent the screen from exiting whilst in fullscreen mode. When using this option, you need to press alt + tab to restore your mouse for normal windows operation. To control your emulator, activate its window again then use the alt key to activate the menu and execute commands accordingly.
RawDevP1; RawDevP2
(value can be 0, 1, 2, 3 etc)
These entries are only required if you experience trouble with dual mouse functionality. If you have other devices installed on your computer that may emulate as a mouse device (EG: Logitech G25 Racing Wheel), you may need to use these entries. If player 1 mouse functions, you will only need to add a value to RawDevP2. If the player 2 mouse functions, then you will only need to add a value to RawDevP1. Start by setting the value to 0, save and test the game, then raise the number by one each time until the cursor moves for both players in the game.
However - I'm not sure how you can use this to keep Gun 1 as Player 1 and Gun 2 as Player 2. A working setup for two mice in my Ini is this:
UseRawInput=1 ;Read mouse through Rawinput, allowing 2 mice
RawDevP1=0 ;Assign specific RawInput devices to players. If you have more than 2 mice
RawDevP2=1 ;set which one is assigned to each player (0-based)
Lets say, in above, this turns out as:
Where Mouse1 = Gun2 and Mouse2 = Gun1
So - I tried swapping to this to, in theory, swap the guns back over (simulating your difficulties with device renumeration on hotswap/restart etc):
UseRawInput=1 ;Read mouse through Rawinput, allowing 2 mice
RawDevP1=1 ;Assign specific RawInput devices to players. If you have more than 2 mice
RawDevP2=0 ;set which one is assigned to each player (0-based)
Then only one mouse worked!!??

So - it's all a bit mysterious really. Not beat yet - will tinker some more...