Body field data not showing in View or Edit mode but exists in database
At this point, the issue seems to relate to language. Both live and dev have 'en' as the default language, but any new content on dev is being created as 'und', but as 'en' on live. 

By way of a test, i copied the html from the db for one of the problem nodes, pasted it via Edit and saved, and the body then showed, but in the db it was flagged as being 'und'

BINGO - we had pulled a feature on to this site from another site. The other site had all fields set to 'not translatable' (field_config table).

On this 'inherited' site, some of the fields eg Body had been set to translatable, even though there were no other languages on the site.

And yes, the feature overrode the 'translate' setting in the db (there is no where to see this in the UI).

Setting body to '1' in the db has restored body being displayed, and some sanity.