Why not turn this around so the clients connect to the server and then keep these connections open? It solves all kinds of problems and presents little load to the network compared to repeatedly re-establishing new connections. The biggest cost will be the non-paged pool memory eaten up on the central server of course.
An improvement on that would be to use Named Pipes which will leverage any existing UDP and TCP channels Microsoft Networking is already maintaining between machines on the LAN. The downside is we don't have anything as handy as the Winsock control and must resort to using API calls, but they aren't too bad.
Any UDP-based solution has to be tolerant of lost and out of sequence datagrams of course. That or you implement a bunch of protocol logic on top of UDP to detect lost data and retry it, buffer and sequence the data, etc. I find most programmers using UDP ignore this, and when their data gets lost and programs lock up they just curse Microsoft (for their own incompetence).
If your application can tolerate lost data though UDP broadcasts (even more lossy than point to point UDP) can be an answer. But if you can use UDP broadcasts you can once again lighten the load by using Mailslots, which also use the Microsoft Networking infrastructure instead of tying up additional UDP ports. Mailslots are like UDP in that you can send point to point or send broadcasts, since Mailslots are connectionless.
Named Pipes and Mailslots don't even require a TCP/IP network, though NetBEUI and IPX networks are pretty rare today.
In .Net it was discovered that their inefficient Web Service and .Net Remoting infrastructure was in even worse shape because these relied on HTTP and TCP. By .Net 2.0 the ability to use Named Pipes, Maislots, and DCOM "under the covers" was added in an attempt to reduce the overhead of distributed component coupling. WCF took this approach even further.
This brings me to the last suggestion I have: DCOM. Your application bears a striking resemblance to the classic Coffee Monitor example in the VB6 manuals.
Using DCOM may radically simplify your client logic, using either events or callbacks to signal information back from the server. Since this also leverages Microsoft Networking the network and server memory overhead are reduced too as long as you are careful about parameter marshalling (pass anything you can ByVal).
DCOM is the "native" way you do this sort of thing in VB6. I'm sort of amazed this wasn't your first choice.
How To Troubleshoot DCOM for Visual Basic Client/Server Applications contains a great deal of useful information, as well as links to a number of articles on the fundamentals of creating DCOM applications in VB6.