OK, still getting nowhere.
I'm now convinced that my wiring is OK. I've checked the datasheet and double-checked the board.
I've just found a blog that says Arduino is incompatible wtih 74HC166, and to use 74HCT166 instead. Is this true? They don't explain why.
http://eq-av.com/?p=AVBR&PHPSESSID=ced18f58fbba1a1403817274dfe310cf
It also seems that most people are using the 165, but I couldn't get those without paying £20 postage!

The code is different for 165 and 166, and I can't get my head round it.
What I'm trying to do is write an Input Function that reads the state of multiple switches attached to the 166, and put the results into a byte.
I then assign the bits from the byte into my variables.
My current code is a mess, hacked from numerous examples, so I need to start over.
The code mentioned in previous post LOOKS like it should work, but not for me.
in Main Loop:
byte incoming = readbits();
function for readbits()
set clock high
set latch low
delay
set latch high //to get rising edge to begin read
for i=0 to 7
set clock low
read input pin
set clock high
add pin state to newbyte
end for
set latch high // to end reading
return newbyte