to summarize the answer based on the comments above, get you clients to connect to the server instead of the server connecting to the clients.
this way, you central server doenst have to keep track of all the clients, their addresses, client firewalls, etc...
you can implement an n-tier sync setup where you have a WCF sync service on the server side that your clients can connect to during sync.