When assigning courses to a branch, you are building the catalog of this branch at the same time.
You can choose to assign courses to some branch, by the Courses tab, when editing the details of a branch.
Your branch catalog will contain courses that you have assigned to it as well as courses that were created for that branch by the branch administrator or the branch professors.
Courses that belong to a branch will only appear in the branch catalog if you have selected so from the advanced course settings (1). If you would like to have this courses not only appearing in the branch catalog but also in the main catalog, you can achieve that by selecting the corresponding option from the advanced course settings (2).
Note: If a course is assigned to an audience it won't appear in the main catalog or in a branch catalog if it's assigned to a branch.