Syncing complete database with server
Merge replication (link) might be a suitable solution for synchronising your data. Controlling the access so that your branches can only edit certain parts of the data should be controlled within your application.