I haven't tested the actual functionality of this, but have you tried using MT tags in the script that preloads the images? Something like this might work:
CODE
<script language="javascript">
<MTEntries>
var <$MTEntryTitle$>_thumb = new Image(123,456);
<$MTEntrytitle$>_thumb.src = "<$MTEntryTitle$>-thumb.jpg";
var <$MTEntryTitle$>_graythumb = new Image(123,456);
<$MTEntrytitle$>_graythumb.src = "<$MTEntryTitle$>-graythumb.jpg";
</MTEntries>
</script>
So, for example, if you have three images (image1.jpg, image2.jpg, and image3.jpg), the variables created (and therefore, the images that will be preloaded) are as follows:
image1_thumb = image1-thumb.jpg
image1_graythumb = image1-graythumb.jpg
image2_thumb = image2-thumb.jpg
image2_graythumb = image2-graythumb.jpg
image3_thumb = image3-thumb.jpg
image3_graythumb = image3-graythumb.jpg
These variables can then be used in the img tags nested inside your anchor tags, as well as easily passed as arguments to whatever rollover script you're using.
Hmm, I may be onto something here. Let me do some further exploration/testing and I'll let you know what I come up with.
IMPORTANT: This also assumes that all of your color and grayscale thumbnails are of the same dimensions (height and width). I haven't played around with getting that information dynamically, but I'm sure there's a work-around. Again, let me play with this a bit.