Problem: UDP Wraped with If Statement

Prints out "Changed" once and after that nothing happens!

So now you know that this
if ((v1 != IO1DigitalVals[i]) || (v2 != IO2DigitalVals[i]) || (v3 != IO3DigitalVals[i])) is either only true once or is only executed once. So put in some Serial.prints to show whether it is executed more than once and the values of the variables being tested by the statement. Also put some Serial.prints elsewhere in the code to show what code it is actually executing.