If you look at the offending cells the html is slightly different.
In the "OK" cells the html is (eg. second td 25/03/2011):
<p align="center"><font style="BACKGROUND-COLOR: rgb(64,255,192)"> 1.5 C </font></p>
with the <font> tag within the <p> tag.
However, on the 26/03/2011 row the corresponding cell is:
<font style="BACKGROUND-COLOR: rgb(64,255,192)">
<p align="center"><font style="BACKGROUND-COLOR: rgb(64,255,64)"> 5.8 C </font></p></font>
with the <p> tag within the <font> tag, which is invalid.
That's causing the difference.
You'd be better dispensing with the deprecated font tag entirely, and applying the style either just to the <p> tag or even to the td itself, I think.
(A quick and dirty and not recommended fix is just to set the top and bottom margins on p elements within tds to zero.)
The use of tables for this data
is perfectly correct and semantic, incidentally, this is tabular data, where the elements within a table row are related to each other. You don't need it for the layout though.