I have a slight preference for managing recurrence on my end and letting the merchant gateway be as dumb as possible. It means a little more bookkeeping on my part, but once the additional tracking is built in, you know each transaction and can present it to your customer in your system, with the billing gateway just taking the sum of the open transactions, running a single charge, and closing the transactions out. Doing it on your side also means that you don't have a recurring charge marching relentlessly toward its recurring date that you have to frantically fix if something goes wrong between your application and the gateway and the new charge doesn't get set.
In the end, it should be about as much work as figuring out how to remove or change the existing recurring charge, but you get the benefit of knowing for sure that the correct charge goes through every time.