The other thing to try is setting the latency of your USB serial adapter in the driver advanced tab. I have car tuning gear that requires this.
By default the latency setting is a bit high for a lot of USB serial dongles. It increases efficiency at the cost of reduced speed. Akin to the Nagle algorithm in networking maybe?
You mean turn _up_ the latency to slow things down a bit? If so, then that's worth a try.
IMHO, this really smells like a flow control problem. Either the radios are expecting XON/XOFF and we're not doing it, or some of the chips/drivers are not signaling to the line discipline that their UART buffer is full and thus they're getting overwritten. The latter is more likely given that 9600 baud is really slow and most of the radios should be able to ingest that stream without needing us to slow down.
If this is really a pervasive problem with drivers or USB devices, perhaps we should just write a generic throttled serial class, and let people opt-in to using that with a given flow rate. It'd be interesting to know if writing 8/16 bytes at a time, and timing it for 10% higher than the time it should take to flush that at the current baudrate helps all of these problems universally.
--Dan