I was digging.
It seems that something was going on with the code that tries to adjust for the difference in the timezones.
In the component file zweather.html.php the value for hours since last observed was essentially my servers difference from GMT (4 Hours). So my observation time was always calculated to be 4 to 5 hours behind.
I changed line 1018 from:
$servertime = time() - date('Z', $xmldate);
to:
$servertime = time() + date('Z', time()) - date('Z', $xmldate);
and that worked for me.
For some reason on my server "date('Z', time())" gives a value that of -144000 but I think its normally expected to give zero.