What you seem to need is a service level agreement. If you google you will see a few templates.
An SLA is for managing performance and service levels (as the name suggests) so it would not be appropriate for the OP's needs as expressed:
"....to protect ourselves from a couple of situations, the main one being them setting up in competition to us, doing similar work for a rival etc."
Given the cost of 360k per year, there is certainly merit in drawing up a contract to protect value which is presumably even greater than that amount. The contract should give protection on elements such as: intellectual property and asset ownership, (i.e. including setting up in competition as the OP points out), TUPE, poor service (credits), audit rights, (possibly) site access, to name but a few... If there is software or customer data involved, even more protection will be needed. Standard "Supply of Service" terms and conditions work to a point, but you need to go a bit further when it comes to outsourcing agreements.
There is one other potential issue, however. Given that there are not many others who can deliver the service, and there has already been a significant investment in this relationship to date, the negotiation strategy will need to start with this in mind, i.e. there is no short term alternative. There is no point launching in with a fancy contract and expecting them to sign it if they believe you have no credible alternative.
I would recommend that you think about what alternatives you have to the existing supplier before commencing the contract negotiations process. I would be inclined to engage first with a commercial procurement professional first to bring you to the point where a contract was a viable option.
If you do proceed to contract, make sure you get some input from an experienced solicitor before final sign-off.