Shift Register over long distances
Have a look at the clock signal in particular on an oscilloscope at the IC end, chances are it is ringing like a bell and causing the SR to clock multiple times.  You can try a series resistor of about 50-100 ohms in series with the clock drive (near the microcontroller), but that's not ideal. 

It would be better to use an LVDS differential driver and receiver and a properly terminated twisted pair, at least for the clock signal. 

Failing that, slowing the clock with an RC and using a Schmitt trigger (since the SN74HC165 lacks a ST clock input) such as 74HC14 to clean up the clock at the other end should work, provided it's acceptable to run the clock at a much lower frequency.