I went back to stock and tried again - using the LS980 CM11 ROM for Sprint, I've been able to keep a connection the longest. Using the Telinfo app, I'll be on GSM Only, then it would go to 'E' or 'Emergency Calls Only', so then I switch to GSM Auto (PRL), and I'll be back to normal speeds. Usually once to twice a day I have to do this.
Any idea why? Did I somehow screw up the radio? As I said, I went back to stock and it picked up the Sprint network fine (though I couldn't use it with no Sprint service).