Tips for synchronizing data from a local branch to the main office
If you can, try to use the same instance with ACL to limit what the branch can see (eg only their contacts).

If not, you will need to write at least one extension on the main, to automatically create the relevant contacts on the branch civi, and probably another one on the branch to update the contacts on the main.

Synchronising in both direction is tricky, and you might have situation where one is updating the other with older/incorrect data, think about who "owns" the master data and should be considered always right.

I'm aware of a few projects that helps synchronizing different civi install, but I don't think any is ready to be used the way you want - at least without coding -