I am trying to solve the following implementation of the set covering problem of a crew rostering problem. Here constraint (19), meant to create a 12-hour break between the different shifts taken by person $k$, is however giving problems computationally (it creates too many constraints). The question is if there would be a smarter way of formulating (19), so that I would need less constraints (solving the constraints is not really the issue - just the amount of constraints is currently too large). Thanks in advance.

Maybe you can implement a column generation algorithm, where only that shifts are a valid variable, which satisfy the break constraint.