This is fairly good stuff!
I would also like to think of it as agreement as opposed to contract... and I think that instead of a 1 year agreement, I would leave it as indefinitely. If they need to cancel or change the frequency of cleaning, make it time consuming and tedious (within reason) for them to do it, and they'll be less likely to make any changes. Unless corporate structure changes drastically, Or you're just doing a s**t job, then they may take any course of action to change their maintenance plan.
To prevent them from cancelling, just continually follow up with whoever brought you on and find ways to make sure they're happy with your service by any means necessary.
Just my two cents!