when you configure the client, do you fill in the tunnel network or is it enough to define this on the server ?
I always do to make sure it's correct at both ends, I use a /24 subnet even though it's often overkill. It needs to be the same in the Client Specific Configuration entry for each client as well.
on the server > advanced; do I understand it correct I have to add the route for every extra branch office ?
Yes that's correct, you list the all subnets that the server will route to any of the clients and then add a specific "iroute" in the CSC entry for each client according to the subnet that client needs.
In pfSense 2.2.4, it's easier to use the "IPv4 Local Network/s" and "IPv4 Remote Network/s" boxes (although the "old" Advanced box method still works).
The "Local" box is a comma delimited list of all of the Server's subnets, while the "Remote" box is a comma delimited list of all of the Client's subnets.
As noted above, CSC entries split them where they need to go.
The only other thing I've run into when adding new pieces to an existing OpenVPN setup is that pfSense does a fairly good job of trying to keep it's pfSense servers and clients up and running. That sometimes means when you make changes on the fly, you have to explicitly stop the server and client one at a time and then restart both to make sure your changes are in place. Changing/adding certificates on the fly can be very problematic sometimes.
Seeing as you have two sites working OK, you probably have the basic techniques done correctly. I would make all the entries in the server for all the clients, then reboot the pfSense server box. Then you can work on each client one by one and see the changes in the server's OpenVPN status log to see what's going on.
In the end I find this stuff takes more time to describe than to actually get going, especially if you've managed to get two clients working already.
Keep at it and let us know how it goes.