I use different formats depending on how I judge the needs of the class.
One of my favorite formats though (probably 75%+) is this:
I tell them to make partners and switch things around to make the best pairings. I put three minute rounds on the timer, and I have them run continuously back to back with no break.
Then I just tell them to train whatever they want. The idea of the timer is to give them regular indicators to divide their training with. My default suggestion is that one person drills for three minutes, and the next three minutes the other person drills.
It doesn't have to be that way though, and students have gotten more creative about how to structure things over time. Now I will see them agree on a position to start specific rolling from, and then they will divide out the time to cover starting from different areas over the training period. A few groups will just sort of explore concepts generally without much regard to the time. A few groups just roll.
For running the class, I just float around and keep an eye on what everyone is doing. It seems like it would be chaos having all of these groups doing completely different things all at the same time, but it runs very smoothly actually. There is still a very good team vibe that we are all working together even though everyone is training to meet his own individual needs.
I can see each pair, see what they are doing, see how they are doing at it, etc. I just make corrections if needed. Sometimes the corrections are technical in nature (try this way instead), and sometimes the corrections are broader based on training method (your drill looks pretty good on that now; try a few rounds rolling from that position and focus on hitting it live).
This method works well for me up to at least 20 people.