If your rosters are already generated, then they likely came from the Student Information System (whatever system you use to take attendance, find contact information, schedule, etc.), which synchronizes the rosters to Canvas. Your sections (periods) sound like they are all combined into one course (crosslisted).
We have the same issue. If a student is enrolled in multiple sections due to a mid-year schedule change, our SIS sync isn't doesn't flag when the student is inactive in one section, and active in another. It shows them as active in both, which causes them to receive notifications for both periods' due dates, and it also imposes late penalties if the non-active section has an earlier due date than the active one. I don't have a solution.
If I'm off track here, someone chime in.