Have you looked at doing anything to help speed up the reception on the receiving device? Shortening that tcp handshake over a (possibly?) slow link could save you valuable time as well. Maybe using ip addresses and hard coded /etc/hosts to eliminate reverse-name lookups? Just a thought.
BTW: the
gpsd daemon and friends server use udp for this very reason.