Hide in plain sight.
Set up your class in a large office building with multiple businesses, all of which are legit, but all of which you control. Students have cover as employees. The businesses are large enough that it's reasonable not for everyone to know each other.
Each student is given an assigned time when they show up to "work". They go to their assigned business and make their way to an ordinary looking room that is secure and has a secret passage to a hidden corridor. Security controls both doors so it is impossible to open both doors at once, nor will they allow more than one person in a room at a time, not will they allow more than one person in any section of corridor at once.
In the corridor each has an individual assigned changing room where they stash their civilian clothes in a secure locker and change into their disguise. At another assigned time, security allows them out of the changing room through another door to another corridor to go to a waiting room where they wait as the group gathers. An elevator without indicators as to floor or direction then stops and carries the group to the class area before getting another one. Students are not allowed to tell each other what floor they got on, and they have no idea what floor they get off on (other than it's above or below theirs). The elevator also changes the order of the floors it picks up students at.
After class, process reverses. Students have an assigned time they have to wait in the lobby before going to the corridor and changing back. They have variable amounts of time to wait in the changing room. They are given a different time to report tomorrow. This means they may have to wait in the lobby for an elevator briefly one day, sit and cool their heels for a half hour or more the next.
The end results: aside from making it harder to follow them (since security surely knows who they are before they are disguised), they're not sure who the other students might be. Because you stagger both their arrival times, how long they have to wait in the changing room, and how long they have to wait in the lobby, you don't know if the person ahead of you walked in 30 seconds before or 30 minutes before, and you don't know how long they were cooling their heels in the changing room watching TV or whatnot, nor when they entered the building in civilian guise: after all, they might have come in after you but gone through the changing process faster so they were waiting at the elevator sooner.
You've essentially created 8 time variables: when they have to show up to work, when they're allowed into the changing room, how long they're in the changing room, and how long they have to wait in the lobby, and then the same in reverse. When they walk into the building in the morning, they have no idea if other students are walking in at the same time, entered earlier, or entering later, and by changing the time they have to show up, who arrives at the same time and who arrives earlier or later is always changing.
If you want to, you could also change, from time to time, what "business" they supposedly work for, so they're not getting off at the same floors. If you ensure that the legit portion of your businesses has flexible working hours, with perhaps individual departments working at different times, you further complicate recognition because there's always people arriving and departing.
Meanwhile, from the outside, all they see are people going in and out.
Edit
I should mention some other variables. Because you control their access between their "office", changing room, elevator lobby, and elevator, you can have people on the same floor staggered so they arrive at different times, not knowing if the elevator might have already picked up (or dropped off) people from the same floor. Again, one day there might just be one student taking an elevator to the class level from their work floor, another day ten, so they're never even sure how many people actually "work" on their own floor.
So, typical day for a student: they arrive at work the time they were given the day before, and go to the floor and office number they were assigned, which may change. After sitting in the office for a period of time they don't know in advance other than it might be anything from 5 minutes to an hour, they recieve a message telling them the secret door is open and allows them into the corridor, and what is their assigned changing room. In the changing room is a countdown timer showing them how long they have to change from their normal clothing, and they must be changed by the time the timer runs out, say 10 minutes. Once they are changed, they check in by pressing a button, which allows Security to verify they are in costume. Then the timer comes on again showing them how long they have to wait, which might be anything from 0 to, say, 30 minutes. They've got stuff in the changing room they can use to kill time, whether study, watch TV, whatever.
Once the timer runs out, they're allowed out of the room to the secret elevator lobby where they wait. A timer on the wall tells them how long until the elevator arrives. At this point, other students may or may not be arriving. At 0, they get in. The elevator goes up and down several times so they don't know for sure if they end up above or below their original floor. Door opens, they go to class.
End of class day: each student is informed what time they are to arrive tomorrow, as well as any changes in what office they are to report to. They are allowed into the elevator in different combinations than they were on arrival, again the elevator doing the floor-shuffle. They go to the changing room and again have a countdown timer to change back into civvies. They have to wait again some time between 0 and 30 minutes before they're allowed out. They go to their office and after again some random time, receive a signal that they are to leave the building (timed to coincide with a large group of people also leaving the building).