I actually think this would be much easier to do with Compliance checking and config blocks...
Have it search for a config block that looks for something that starts with "^interface (Fast|Gig)Ethernet .*" and ends with "^!". Look for the description you don't want to be there (ie: "description Access Port") and have it re-mediate with the commands you had above.
You could create another compliance rule that looks for the description you do want to be there (ie: "description Client Port") and then checks for the config lines you have listed above and if it sees a discrepancy in what is on the port vs. what should be on the port, you can once again have it re-mediate with the commands you had above...
I'd give it a try and if you have any problems with it, post here and we can try and flesh out the idea a bit better for you...
Clik here to view.
