There are various options to you, and this is a very broad approach to things.
It also depends how you want to operate.
If the sites do not need 100% up to date information then you could use Data Synchronisation approaches:
Choose a Data Synchronization Technology[
^]
If they do need upto date information then you could work on a paging method when retrieving large amounts of data, or refine how your data is transmitted between them. When submitting information take advantage of threading and handling failures on a call back method. This means you can submit large amounts of data and keep using other aspects of the program while it submits if that suites your operation.
You could also look into compression which could be applied.
Without knowing much more about your system it is hard to advice but those are some approaches that could be considered.