When (and if) you fix it, would you mind sharing the problem and it's solution? I checked your shader, and the only "strange" thing I saw is the uniform integers (I thought integers where not supported on hardware, as most hardware unrolls loops when shaders are compiled, which is the usual and only practical use for integers on shaders that I've seen and used). I can be sure, as ATI cards seem to not support glsl 1.2 specification, but I can't seem to find the differences between glsl 1.1 (opengl 2.0) and glsl 1.2 (opengl 2.1), at least I was unable to find the former specification anywhere on the web.
I usually use CG/glsl on a daily basis, but always on NVidia hardware, but I like to learn differences between hardware on shaders, as my glsl code is meant to run on a wide range of hardware (not emulation related, but the projects derived from that engine get quite spread).