While Branches and Groups might look similar, they serve different purposes and roles within the LMS. Groups organize users into logical entities, allowing them to treat all of them as a single entity. You can communicate to the members of a group directly, assign them courses, and see aggregate reports on all of them. Groups also come with mass actions to synchronize their users with their courses.
You create groups based on any criteria you like, e.g. 'Medical Students', 'Class of 2015', etc. and you can assign Learners and courses to them.
Branches, on the other hand, allow you to divide your e-learning offering into different logical units (or “departments”), each with its own courses, users, instructors and branding (sub-domain, theme, logo, etc.). Branches can be a flat list or form a nested hierarchy.