74HC165 and 75HC565

CrossRoads:
Nice work - good looking schematic!

OldDataInput == DataInput;//makes the Data the new new "old data"

Maybe try just 1 = here, for an assignment vs a comparison?

I'm fairly new to C and I believe that my line would work for my porpose, and I'm not quite sure what you mean by 1=here.

The issue I believe is here

     digitalWrite(InPutSelect,LOW);//Load inputs into the register
     delay(10);
     digitalWrite(InPutSelect,HIGH);//Causes data to transfer serially at the DS with each clock pulse
     delay(10);
     digitalWrite(InPutCE,LOW);//enables the clock
     delay(10);
    // Transfer MSByte than LSByte
     DataInput = SPI.transfer(0x00);//transfers the MSB
     DataInput = (DataInput<<8)&SPI.transfer(0x00);//moves MSB to left byte than transfers the LSB to the right byte
     digitalWrite(InPutCE,HIGH);//Disables the clock
      Serial.print("Datainput = ");
      Serial.println(DataInput,BIN);
      Serial.print("OldDataInput = ");
      Serial.println(OldDataInput,BIN);
     delay(delayTime);

DataInput is not being populated even when the switches are being toggled to lets say 0011100100000111. DataInput still reads 0x0000.