You can set a file's icon with the SysSetIcon function in the RexxUtil library. Just feed it the file name and the icon file name. The WPS can be a bit picky about the format of the icon though, if it isn't happy it will display the default icon instead of the new one. The details of the format can be found in the Control Program Guide in the toolkit information.
If you need a little app to take an existing icon and colorize it, or add colors to it or some such, let me know. I could write it. You could call it from the command line or a script with the color you want. I could also add some PM interface to let you choose dynamically.
Some nice features might be:
Scale the icon down (scale=80% for example)
Draw a border around it (border=2px for 2 pixel border, color=rgb(255,0,0) for red, green, blue colors for example)
Put colored blocks here or there (block=4px,0,0 to put a 4 pixel square box @ 0,0 upper left)
Draw a line or rectangle (line=[0,0]-[w,2] to draw 2 pixel a line at the top from 0,0 to width,2)
And other features.