Yeah, if you put the shapes and the color .pngs in their own folder, then you could make a drop-down that is populated by the name of the .png (e.g. "Red.main.png" would be listed as "Red"). Then, once the user applies the settings, the settings are sent to the server and the server unmounts any images already loaded, then loads the new settings using this:
%obj.mountImage(%image,%slot,%loaded,%skinname); // %skinname would be "Red".
You'll need to texture everything by default with "Base.main.png" and make a special case for your GUI that makes it show up as "Gray".