Actually, I figured this out on my own. You need to let 4 days pass without repeating the chat with Charlotte outside the classroom. I kept checking in with her every day and resetting the counter. I think it's a bug, but one only triggered by my unusually-obsessive behavior.
Note for the developer: I'm a software engineer and curious about renpy so I decompiled and took a look at your scripts to figure this out. In should_cutscene_brigitte_route_ae_a there's a condition cutscene_days("brigitte_route_ad") > 3. The "ad" cutscene seems to be the chat with Charlotte. That might work better if it was based on days since the last chat with Brigitte (not repeatable) rather than the repeatable chat with Charlotte. I'm going to go back to not mixing my work with my hobbies now. :)