I would suggest using Network Address Translation at all of your offices (see rfc 1918 for more information).
Branch office: (2 subnets)
192.168.0.x
192.168.1.x
Site 1:
192.168.5.x
Site 2:
192.168.10.x
Each site will have 5 possible networks available to it (for growth - you can change this, I just used it as an example).
At the main office where you are already at 255 ip addresses, I would use one of the subnets for your network equipment, servers, etc. and the other one for dhcp (users) or static ip users (whichever you have).
You don't necessarily have to go with the private addressing that I used, you can use whatever you want - that is just another suggestion I made.
I like to stick with class c structure to make this simple (hence you'll be using a 255.255.255.0 subnet mask on all your machines). There are some tweaks we could do in the subnet if there are some issues at the branch office, but let's try and standardize!
Hope this helps some...
Good luck..