superante My advice would be to have them as separate departments. Each agent is assigned to one department (with the possibility for extended access to another, if for example, somebody is a liason between two companies), and within these departments you can have teams, such as second level support, engineering, etc...
Central office don't need to be members of all departments unless they want to view tickets - as long as they have a role that allows transferring to other departments, it should work as you describe.