You could make the clients_contract, and keep it to the contract between client and the MSP, i wouldn't mix it with the vendors, so this is strictly for the MSP admin to know and manage all the billing aspects based on the contract. get cleaner that way. in addition, there could also be a file update of the contract itself, unless upload it under client documents.
as well, maybe alerts on dashboard, admin email and client email when contract is due to renewal/termination so further discussions can be made.
other contracts that clients have with the vendors, should be just as notes on the clients side.