Without looking at the shader, it would be hard to guess what the problem is. It is possible that your shader has too many ALU instructions with the RNG routine.
The reason it produces different results when compiled to ARB assembly language because the hardware assembly generated using a GLSL path might be different.
You're right, it was the ALU instruction limit - I am on the very edge, so that for example having y = x / 2000 didn't load but y = x * (1.0/2000) did.
I've optimized the code and saved some ALU instructions here and there, for now it will do.
Anyway, I was just wondering if the analyzer could provide more info about why the shader won't load, so I don't have to guess ...
Edit:Removed Advertising from the post