I'm curiously following this just because it runs contrary to the little knowledge I have of light pens and I expect that I'll learn more from the ultimate fix of this problem.
As I understand it, the sensor in a light pen detects light of a given brightness or it does not. Only the driving host device knows how to interpret the position based on the timing of the light detection. Only the pixel being currently drawn should be bright enough to trigger the sensor. The light gun itself shouldn't have any clue where the pixel is that it just detected.
So, I'm really curious how the light pen itself could be responsible for making one axis function but not the other. Is not the sensor itself is a single element, one-dimensional device?
What was the failure mode? Did it appear to detect the exact same position all the time on the broken axis? Or did it appear to detect light at every position on the broken axis? Or did it appear to just be off by a few rows/columns in the broken axis? Would the mismatch in position change if you rotate the barrel of the light pen as though the input optics were not reading directly out in front of the sensor?
Maybe the polling logic actually somehow/somewhy (<< should be a word) reads the sensor twice to determine X and Y position and a pulse for one of those reads is too short to activate a weak, failing component? I'm really just making stuff up here but am interested in seeing what the real reason turns out to be.