I struggle to find a way without a lot of duplication and admin to run multiple concurrent cohorts (may be overlapping or starting at the same time), through a course or programme.
If there is a way to identify a cohort/group for a course, enrol them and this would enable them to progress through as a group a course (the same course completion requirements for all groups), without all the admin. They would progress through the course as a group with access to and restrictions relating to activities in place rather than having to enrol groups into activities manually.
Have been managing this using audience and groups with duplicated items and using audience aware function to provide a learning pathway, but there's a lot of admin.