It turns out that the information on the GPSBabel site is false. At least, under certain circumstances.
This call fails:
gpsbabel -i garmin -f usb: -o kml -F gpsfile.kml
But this one succeeds on the stock kernel:
gpsbabel -i garmin -f /dev/ttyUSB0 -o kml -F gpsfile.kml
The conclusion: all that effort I expended on recompiling kernels and modules, struggling with restricter drivers -- that all wasn't necessarily after all.
I'm sad that I spent so much time on that issue, but I'm glad it works out of the box.