A private network schema is a viable choice for internal IP addressing. Each office can have its own range to avoid conflicts with other locations if subnetted correctly. Assuming that all nodes and servers have only one interface, you should only need one public address per outward interface. In the diagram provided, you would only need one public IP address for the router connection to the Internet. Everything else can be addressed privately with the correct subnetting.
As for deciding on the subnet mask, the largest would be 255.255.252.0 or /23. There are a total of 365 devices, including 352 computers, 7 servers, 4 switches, and 2 routers that need IP addresses. Using a /23 subnet, that would allow for 508 devices, whereas /24 would only allow for 254.