I use FSUIPC; it's one of the areas where it adds a huge amount of functionality.
I have multiple sets of controls hooked up and I generally leave them all plugged into a large powered USB hub. Currently plugged in, I have rudder pedals, a yoke with it's attached throttle quadrant, a second throttle quadrant, a saitek throttle/prop/mixture controller, a trim wheel, a saitek switch panel, a x52pro stick with it's attached throttle, and finally, a cheap saitek stick modded into a floor mount cyclic. The switch panel is run through SPAD (which works awesome), but almost everything else is run through FSUIPC.
What I do is to select each controller in FSX and delete every single axis and button assignment - with the exception of the rudder pedals, since of course I use them in every thing I fly. Then, every time I load up a new plane I setup all of the controls on the controller I choose. This lets me use the type of controller appropriate to the plane, and none of them ever interfere with each other. A bit of work to set up initially for each new plane, but well worth it when you consider that once setup I can switch from flying my 737-200c, to my C172, to my 407, to my F-86 without ever needing to reassign controls.
There are a few exceptions; for example, the Q400 requires the yoke and throttle quadrant to be assigned in FSX, and I usually map the hat switch for panning around the VC in FSX as well, since it's smoother than doing the same in FSUIPC.
I also use the letter assignments within FSUIPC, which helps make things a bit easier if you ever need to unplug stuff. Also worth remembering, is to make a copy of your FSUIPC config file so that you can potentially save yourself the time of going through it all again if you ever needed to reinstall.
Also, one of the other advantages of using FSUIPC for this stuff is that it has a large amount of functionality for tweaking the response curves for your yoke, as well as mapping ranges of your throttle quadrants. For examples, my one Saitek TQ never quite hits a full read when pushed full forward; so in FSUIPC I edit the range of travel so that by about 95% of lever travel it is sending a 100% signal to FSX.