I'm just getting started into the hobby, but I've found that mixing my ultrastik and X360 controller is no good. Windows (xp is what I'm using) ALWAYS will assign the x360 controller a higher id, no matter when it is plugged in. Unless you're planning on keeping everything plugged in all the time, when you remove the x360 controllers, windows will reassign id's and mess everything up, and then mess things up again when you plug them back in.
Also, the ultrastik, if only connected via USB is detected as a gamepad in windows, not a hid device such as a keyboard. If you connect it to the ipac without USB, it'll be detected as keyboard directional keys. I'm not sure what happens when you connect it via USB and via IPAC at the same time.
Retroarch, I'd imagine, has support for both keyboards and gamepads, but you probably have to choose one or the other for each player. I've had trouble like that because since I only have my ultrastik connected via USB, my buttons function as key presses, but my movement directions function as an analog gamepad. Fortunately, most emulators let you mix and match, but some don't. Retroarch may not. You may be able to use the winipac utility to assign the buttons on your control panel to function as gamepad presses instead of key presses, and just load different ipac configurations on the fly with your frontend.