Está claro que la llamar a read_full_temp, esta función devuelve un float. Lo que haces para mostrar un float en el GLCD es correcto, solo que antes de visualizar otro valor debes borrar ese sector del GLCD.
Lo que puede fallar es la simulación del ds1820 o algo falla en la librería. Prueba cargando un valor establecido al float y visualizarlo en el GLCD.. También puedes ir paso a paso y ver si desde el ds1820 recibes el valor correcto, todo eso junto a su datasheet.
Saludos!