If I stick with the BasicEffect I don't think I'll be able to fix it, however I am going to be writing a replacement shader so taking Hodgman's insight into mind it should sort things out. Will report back with an update.
As for VertexPositionNormalTexture not supporting the W component - you can easily create your own vertex declaration that does include it. Have you tried this?
Alternately, why can't you perform your transformations on the GPU instead of on the CPU (or maybe in addition to on the CPU, if you require the projected coordinates for calculations in your code). Then you wouldn't run into this problem.