I think the big issue is that the rotation is every week. Every other week or more would be better.
In a strong union environment, this would likely get addressed with a combination of higher pay and seniority. Senior people choose their shifts and if junior members have to work night shifts, at least they get compensated.
Compensation and the piece of mind that they will get the prime shifts when they have earned the seniority. AKA there's a goal to be had for suffering though a difficult situation. Otherwise hopelessness is a nightmare.