If your variable is ranging from 0 to 65536 (the maximum that word can hold) obviously the HSEROUT command cannot handle that. With HSEROUT you can use only ascii values.

So, as you have already find out, the dec2 temperature does work. Maybe your value is beyond 2 decimals so you have to use dec5 to be sure and cover all temperature values?

Ioannis