Shift Register Not Working
From the Arduino website:


  shiftOut()
  
  Description
  
  Shifts out a byte of data one bit at a time. [...]
  
  Note: if you're interfacing with a device that's clocked by rising
  edges, you'll need to make sure that the clock pin is low before the
  call to shiftOut(), e.g. with a call to digitalWrite(clockPin, LOW).


You need to pull clockPin low before each shiftOut() call, as the documentation says.

Also, you have misunderstood the behaviour of the latchPin. This can be high or low at any time; it's the change from low to high that latches the data into the output cells.