She has a right to charge a penalty even if there wasn’t one previously stipulated. She was not citing that a 20% fee was written into the contract, she was simply stating how she does business, which is to assess a late fee for payments. Clearly the company had breached their own contract in at least one case, and also violated state law in another. The contract also did not state that if the payment was late, there would be “no fee assessed” either.
Contracts do not have every last provision included in them and things that happen outside of the written clauses are addressed as they occur. Given there is effort involved in chasing down payments (who knows how long it would have been had she not kept following up) I don’t think a 20% fee is unreasonable.