Geofield From another field showing only after saving from form
Geofield runs geofield_field_presave() before saving the data, and calculates various values for the field. Use the devel tab, and check whether the 'geom' array of the geofield is populated and the others are empty. That was my case, and I am using geofield_compute_values() to calculate these data, but afterwards I repopulate the 'geom' array again, because I think it converts it into WKB.
You can take a look at my code. There might be other, better solutions too.