While I occasionally use the Tweak() filter, it's only good if you need to make very general changes.
For more detailed work, I am fond of Wilbert Dijkhof's port of Donald Graft's vdub filter, "Hue": http://www.wilbertdijkhof.com/
The downside is you MUST work in RGB colorspace, your benefit is that you can adjust hue/saturation/intensity separately or together for each RYGCBM color.
You can even call multiple instances to give a separate hue shift and/or saturation for each color of 6 colors (or just leave Red out while you boost the rest).
My color correction process (in general, not just for SW):
1) Load my script without color correction into VDubMod.
2) Adjust levels and then the colors IN VDUB as outlined in Doom9's still useful Analog Capture Guide in sections 7.1.9 through 7.1.9.2. (Using multiple instances of the Hue/Sat/Intensity filter as needed.)
http://www.doom9.org/capture/postprocessing_vdub.html
-> The reason for doing this in VDub is it gives you access to a wave form monitor and vectorscope. That way you can actually see if you are pushing things too far (or not far enough).
3) Next, write down how you set your VDub filters (and in what order) and add results to the avisynth script.
Levels() is the same as VDub's Levels filter. Input levels, gamma and output levels plug right in with the same numbers.
Hue() is a port of the VDub filter, so again, the numbers are exactly the same.
This method is really useful and worth trying when you have one color that just won't behave when you are trying to adjust things.