This problem has been around for a while and I don't understand why.

It is very annoying.
Since your shader doesn't use the vertex colour one possible solution is to remove the unused vertex colour from the object like this:
convert object fvf 1, 274
If you need the vertex colour then a possible work-around (untested

) would be to copy the vertex diffuse values into two new UV stages, then delete the vertex diffuse from the fvf. The shader could then reconstruct the colour from the two new sets of UV data.
Edit Thought I'd put my money where my mouth is.
Here's a screenshot using the method I just suggested:
Revised project attached to next post.