How can I enable a user to renew a membership that has been cancelled?
One fudgy option would be to set it to 'override = Grace' then let them renew, then clean up by removing the override status

The fact that a Cancelled membership causes problems for people trying to then renew/complete have been raised in JIRA. See this and this