The method I have settled on is to use an empty metacourse as a "gateway" into the target course. The target course is set up a child course of the metacourse.
I set up the proper groups and group enrolment keys in the metacourse so that once students enrol, their accounts are automatically enrolled in the target course I want them to be in.
However, metacourses do not transfer groups, which is a huge problem.
But, this amazing plugin actually pulls the group information from the metacourse into the child course. It totally saved the day! So awesome.
Now I can set up any number of courses, each with any number of groups, and students can simply enter a single enrolment key one time and automatically get enrolled in all of the appropriate courses and the appropriate groups within those courses. Wow.
The only small issue is that the metacourse, which is empty of content, remains on the course listing page. I think the best thing to do is to make it a single activity course with a message and/or links to the actual courses.
Anyway, huge props to Paul Holden for writing this incredibly useful plugin.