I don't understand your latest code. This
PiState = digitalRead(PiState);
is nonsense since will read into PiState from pin 0 or pin 1 since PiState is always 0 or 1! It needs to read from the pin that is connected to the PI.
This
if (PiState == HIGH) {
digitalRead(piPin1);
digitalRead(piPin2);
}
is nonsense since it checks for PiState being HIGH, reads piPin1 and discards the value read then reads piPin2 and discards the value read. Similarly the other block of code.