The problems inst roles the problems is a single branch having one appuser having role admin as the admin of the brnach and multiple other appusers with roles teachers as a list of teachers teaching at that branch
As I understand, one branch can have many AppUsers. Each AppUser can be assigned a role; admin or teacher. The use case is each branch must have one and only one AppUser assigned to the admin role. If my understanding is correct, this is logical problem and it is up to you to come up with a design.
Let's image you are creating a new Branch and there are no AppUser's in the Branch. What do you do in this situation? If there are no AppUsers in the Branch then how is it possible to select a admin? Do you have to create an AppUser in the admin role first? Or maybe the the application flow will force you to create an AppUser? But what about the password? Do you create or use a dummy account as a place holder?
How is a Branch admin determined and who selects the Branch admin? A SuperAdmin?
These are basic programming problems that you need to solve if I understand the current situation.