Firstly, please use [code][/code] tags around code and data to make them more readable.
As for your script, I think you are over-thinking a little, although the actual code would need to be a little longer.
Looking at your requirements:
pseudo code:
Code:
loop through directory names passed in as arguments
test if dir is dir, proceed for true or skip to next if not
loop over contents of dir
test found item is a file and does not end in '.old', on true add new '.old' extension
I believe all this can be done in bash with the only external command being mv