We used your code I think its lowering the dynamic variables as well
for example - we are duplicating evar1 = prop1 and when we see the values pass in the debugger its showing as evar1 - d=c1. "D" has to be in uppercase. When seeing in reports we see d=c1 as a value begin pass and not the duplicate value.
Processing Rules would be your best bet here and unfortunately they don't have a toLowerCase style functionality. Although I think that's a great forum idea for you to submit (hint hint).
DTM/Launch have the ability to set clean text and lower case in data elements, which I would recommend.
You could consider coding a solution in doPlugins that checks through the variables in the s object and applies toLowerCase to them one-by-one. I'm not familiar with a plugin that does this automatically.
I'm similarly not aware of a 'plugin' for the SDK that does this. Sounds like it might be worth your while to build one though.