By not calling them out on changing the hours on your contract you made it clear to them that they are calling the shots, not you. They have no reason to believe that you mean what you say because you haven't been doing what you say.
You'll need to either accept that you are letting them be the boss...or you'll need to make it clear that they are not to follow your rules. This means you have to be firm and NEVER let them call the shots.
It's like working with toddlers. If you tell them 'no' but then let them do as they want you will spend a lot more time and energy trying to establish you mean what you say because they will push harder and harder to test your limits.
If you close at 7pm, you close at 7pm whether dad is out of town or not. They need to change moms work hours that week or have someone else do pick up. They don't get to just tell you when they will be coming late. It's just not an option.
Give a letter of termination unless they sign a new contract (that they haven't made their own changes too). this contract will clearly state your hours and hat there is no exception.
I also suggest you DO NOT have a late fee for this family...as they will take that as you just accepting more money to come when they want. It will not be a punishment for them...it will be permission to continue as is. In your contract state that if they are late ONCE they get a written warning, late TWICE they get a letter of termination of care effective immediately.