After running gcmerge, I have a combined .loc file for geocaches from a number of areas. At first, I used POI Loader to load the data onto the GPS, but I preferred something a bit more command-line driven and scriptable, so I switched to GPSBabel.
gpsbabel -i geo -f geocaches.loc -o garmin_gpi,bitmap="cache.bmp", category="Geocaches",units=s,proximity=0.6,descr -F geocaches.gpiThis command (all on a single line) converts the .loc file to Garmin GPI format. After running that command, I connect the GPS to the computer. The computer sees the GPS as a mass storage device so all I need to do is copy geocaches.gpi over to D:\Garmin\POI, where D: is the drive letter assigned to the GPS. That's it!
After that, waypoints show up on the GPS in the Custom POIs section:
I can select any one of those, hit "Go!", and the GPS will route me to the closest road to the waypoint. (Not always the best way to approach the cache but I can usually figure it out from there.) GPSBabel's "descr" option is the magic sauce that sets the POIs to display the cache name under each waypoint ID. "cache.bmp" is a 24x24 icon I borrowed from Gary Hayman's nüvi tips website.
It's the yellow square with an "X" in the above screenshot. This icon can be replaced with any 24x24 or smaller BMP image but I find that simpler icons look better on the map display.
And finally, "units=s,proximity=0.6" sets a proximity alert of 0.6 miles on each POI. Here, it does nothing other than make the icons show up on the map when I drive within 0.6 miles of the waypoints. It's also possible to add sounds and popup messages but I'd rather miss a cache or two than add more distractions.