Well, I have a comment... But it's in a part of the code that will be so rarely used that it could be completely thrown away anyway :-)
Basically, you are doing the full projection (without doing the clipping though) in software... And this does not go well at all with lighting. This is why I choose in the previous code to only do the world transformation to NOT impact at all lighting (and it worked for Twist AFAIK). So I am wondering why you choose to go all the way and did not do exactly as I did (basically, only do the WORLD transform and set only the PROJ / VIEW one using the D3D7 API and set the WORLD to Identity as we already did the transform).
Even better would have been to have reused fully our VertexBuffer code and our (hacky :-) ) TransformVertices code.
Lionel