I cast a close vote but selected the wrong reason by mistake. Now the only option I am offered is to retract the close vote, and the system tells me that if I do that I won't be allowed to vote for closing that question again. How can I maintain the close vote but fix the reason?
You can't do this. It has been discussed on the Meta Stack Exchange site.
I've had several occasions where I would like to change the close reason, but to no avail. So in this case, retract the vote and don't mind it any further.
Also, see Zanna's answer by bringing it to the Downboat.
I don't think you can. Just retract the close vote, someone else will handle it. It is better to leave a bad question open for a while than to close it for the wrong reasons: a large part of closing questions is informing users about the rules, so closing with the wrong rule is worse than not closing at all.
I agree you should retract the vote, but since it can be hard to get enough close votes sometimes, you may like to bring the question to the Downboat where you might find help getting a close vote for the correct reason to compensate for the one you lost :)