Christiani,
I have a GF2mobile and i cant use three texturestages on this, maybe this is your problem.

Try commenting out this part:

ColorArg1[2] = Diffuse; // stage 2 - lighting
ColorOp[2] = Modulate2x;
ColorArg2[2] = Current;

And see if that works. If it does youll have to find a workaround which i am to lousy to help you with. But maybe Matt, Vent, or some other shader superstar might be able to give some hints.