Fortunately, there are a lot of utilities in Cydia (accessible from any jailbroken iDevice) that provide help in using these devices.
Generally, they're easy to use: get the apps from Cydia. The mouse handler (BTstack
All these apps put an icon on the SpringBoard. Whenever you want to connect and use the hardware, you tap the icon, initiate connection by selecting the device from the list and that's all.
Let me present you an example of such a list. This is the main device selector list of BTstack Keyboard

BTstack GPS 1.5-25900
Tested with an external Bluetooth unit and a 2nd generation iPod touch. Worked great with external map apps!
This has nothing to do with the well-known GPSed service
Note that there is another GPS hack for making use external GPS units, RoqyBT4
Also, there is GPSSerial
Also note that there aren't apps that would make a iPad (2) 3G or non-first-gen iPhone (these models are all GPS-enabled) a real Bluetooth GPS source. THIS
I don't recommend xGPS. The cheap(!), (as opposed to xGPS) reliable(!) and constantly upgraded/not abandoned(!) AppStore(!) MotionX-GPS (HD)
BTstack Keyboard by Matthias Ringwald 1.0-25570
Interestingly, under OS5, the operating system message has changed a bit. This is how it looks under iOS versions prior to iOS5:


Needless to say, the message used in iOS versions prior to iOS5 is more straightforward as casual iOS users will know right away their hardware isn't supported. The new error message is pretty confusing and will result in a lot of poor users' trying to reconnect, re-power their keyboards. Apple might want to re-introduce the old message to avoid user confusion.
The Keyboard app does wonders and works just great together with my first-gen Apple keyboard. Of course, it isn't as seamless as using a standard one, but I've decided not to upgrade my (otherwise, really rarely-used) keyboard until Apple releases one with backlighting.
BTstack Mouse by Matthias Ringwald
Using a “hacked” BT stack also means there's no automatic reconnection. This is a major problem (you need to manually connect your mouse) and also means you will need to make your mouse discoverable again and again. For example, on the MoGo mouse, you need to press a small button to make it discoverable. You'll need to do this every time(!) you connect it to your iPad. (Fortunately, if you suspend the iDevice [or it's auto-suspended], it'll still maintain the connection and it doesn't need to be initiated again.)
If the mouse is auto-discoverable (the case of, among others, the above-mentioned, albeit incompatible [see the disconnection after half a minute] Apple Wireless Mouse), at least making it is not necessary.
Using both the mouse and keyboard at the same time

Fortunately, simply closing the keyboard connection and shutting down both apps seem to work (or, sometimes, with an additional respring) – no full restart is needed.
I, on the other hand, had no problems with connecting the keyboard first and, then, the mouse. You may also want to go this way.
Please also see the third (and longest) video on the parallel usage of the keyboard and the mouse and the order they need to be connected.
Gamepad: Zeemote iOS Driver 0.9.0-2
Remember my article “Zeemote - right now, the best Bluetooth game controller - on WinMo / iPhone soon?”
Remember to press and hold the D button (the one just below the joystick) for 3 seconds to turn on your JS1 until the indicator light begins to flash; it's only then will the iDevice find it (as with other clients).
It's nearly not as good to play as a BT mouse in, say, Battle Squadron 1 and can't be used with any game with a D-pad as it's, essentially, a joystick-based emulation of a mouse cursor. If you've ever done it on any platform (e.g., moving the mouse cursor on the PC's keyboard), you know how hard it is. As there's not any iDevice app in the appstore to take advantage of the Zeemote, currently I don't see much point in using it. Unless you absolutely don't have access to a Bluetooth mouse but do have a Zeemote and want to move the pointer around / remotely suspend/resume the device / start and exit apps.
The driver doesn't work together with the other human input drivers (so that, for example, you can “press” the Home / Power buttons from afar). If you start it with the other two active, it won't connect. If you connect it first to your Zeemote controller and only after that to your mouse, the Zeemote connection won't live long.
Other gamepads / controllers
ZodTTD's emulators don't support the pad either, and it's highly unlikely they ever will as ZodTTD (as with the developers / porters of the PSX emulator, FPSce) seem to have completely switched to Android because of its far more game console emulator developer-friendly approach.
iOS5 compliance
None
Let's start with the latter, the Zeemote controller. The (first) video below shows it emulating the mouse pointer. In the video, I demonstrate how it can be used for playing in the current (and, as no games or emulators support it directly, only) mode, that is, mouse emulation. As you can see, it's totally useless for gaming. (Compare the easiness of controlling the ship with the mouse! Unfortunately, mouse emulation with a, more or less, digital joystick is pretty much futile an attempt. Even if you do take into account that the Zeemote iOS Driver does handle how much you turned the joystick to a direction, as it should, and moves the cursor far slower when the volume of the turn is small. However, it still doesn't help much.)
The video (original HERE):
Note that there is another, more than two-year-old Zeemote + iPhone video HERE. The developer of the game shown in the video, mringwal, stated in a post five months ago, that there are no plans of releasing the game and/or making a driver more game-friendly.
Let's take a look at the second video, which demonstrates the disconnection problems of the Apple Wireless Mouse. These problems surface at 0:48 and 1:46; in both cases about 30 seconds after establishing the connection. As you can see, the mouse, in this state, is useless. (Albeit, for some reason, sometimes it doesn't disconnect...)
The video (original HERE):
Now, the third video shows a lot more; for example,
a.) connecting the Mogo mouse and playing Battle Squadron 1 with it a little so that you can have an idea how much lag it has (this is what the entire video starts with). As you can see, as opposed to the Apple Wireless Mouse, it doesn't suffer from disconnection problem. However, upon each and every connection attempt, you must make it discoverable – unlike Apple's mouse.
b.) using the Mogo mouse and the Apple Wireless Keyboard at the same time, including the right order of connecting (remember: keyboard first, mouse second). I also show how you can quickly notice you've used the wrong order (or there's another problem) as, after finishing playing, I don't disconnect the mouse but try to connect the keyboard right away. (This happens from 3:33; it's at 3:49 that I switch on the keyboard; in a second or two, it becomes visible to the iPad too.) Notice the blue, generic Bluetooth icons on the left! This means it won't connect. This is why I first respring the device and when I, at 4:13, realize keyboards will still not work, I respring again. This time, I also shut down the “Keyboard” app (at 4:19) so that it can re-discover the Bluetooth devices.
After the second respringing, the Keyboard app started working (it's impossible to tell how many resprings you're going to need) and I could enter some stuff to Notes (at around 5:10). After this, in order to show both the correct order of co-using the mouse and the keyboard, I start connecting to the mouse with the mouse app. (Note that, again, I had to make the mouse discoverable so that BTstack Mouse sees it at around 5:22.) After this, at around 5:40, I show how the two input peripherals can be used together.
The video (direct link):