that is, out of range of the integer equivalent of char data type
So what? The type that Serial.write() outputs is byte, not char. The range of values for byte is 0 to 255. That happens also to be that same type that Serial.read() returns. Coincidence? Not hardly.
//always send as CHAR data type for Rx to work
Wrong. Always use byte data type.
You should be using either Serial.write(temp) or Serial.print(temp, BYTE). Otherwise, the value is converted to a string, to be sent. That is what is happening to you. Then, you only read the first character of the string, and treat that as the value,
If temp is, after dividing by 10, 75 for instance, it is sent as '7' and '5'. The ascii codes for 7 and 5 are 55 and 53.