Maybe the following will give you some ideas. In general, I have been using the plastic glove hooks for items that I want to quickly remove from or add to my key ring. The key ring I use is similar to Item 71101 at http://www.1stinhardware.com/acatalog/Online_Catalog_Lucky_Line_75.html . The glove hooks cost $0.35 from http://www.dogbooties.com/glovehook.html . You will notice in the photo that this glove hook does not close fully--there is a gap after closing it. However, you can do the following to easily remove the gap.
1. Move the flexible part of the clip around such that it is resting on the outside of the curved section.
2. Hold flexible part of clip in the flame of your BIC lighter for 1 to 1.5 seconds (any more and the plastic will start to burn).
3. After the plastic cools, move the flexible part of the clip back to its original position—there will no longer be a gap in the closure.

Between the glove clip and whatever item I attaching to the keychain, I currently use a split ring. However, I think the loop on the glove hook adds unnecessary volume and have begun to cut off the loop, drill a ~1/16 inch hole in the clip, and insert a split ring in the hole. This same split ring also attaches to whatever item I am attaching to the key ring.

As to a compass: Instead of plastic split rings, consider a solid brass (nonmagnetic) split ring. On my key ring, I carry a Suunto Clipper Clip-On Compass, (Luminous White Bezel) from http://www.actiongear.com/cgi-bin/tame.exe/agcatalog/level4c.tam?&M5COPY.ctx=8164 . At the point where the housing of this compass bends around to form a clip to slide onto a watchband, I took a soldering iron with a fine point and melted a hole to accept a brass split ring ( http://www.jannsnetcraft.com/split-rings-pliers/320925.aspx ). I epoxied the split ring into the hole and then added a second split ring to the anchored one. I used a Size 4 split ring which is ~1/4 inch outside diameter.