Not a complete or entirely relevant answer but maybe give you something to think about:
My central heating controller uses temperature sensors connected by I2C over about 30m of cable. In order to avoid the kind of problems you are concerned about I do the following:
- I only accept 3 consecutive identical readings as being correct (they are taken every second or so)
- If the readings are always the same, so some number more than 3 exactly the same then I treat them as wrong and don't use them.
- I check the temperature readings fall within the expected range and that the data is valid. For example -30 degrees C would suggest something is wrong, as would getting 0xff and nothing else from the sensors.
- There are 4 temperature sensors, if they all read exactly the same I take that to be an error.
- I do checks on the I2C interface to be sure it is not locked up or otherwise not working correctly, and restart it if something is wrong.
I hope something in there inspires you.