Ok I understand about the centre. But can I create one mesh and then place multiple instances of that mesh at different locations using SharedMesh? Is that how it works? I guess this is the question I should have asked originally.
Like irrisor said, create your box with a center of (0,0,0). Set up this box like you would any other trimesh (set up the boundings, etc). Then create as many Sharedmesh objects as you need. Then use each individual shared mesh to set its location. Attach the Sharedmesh to the scene, but not the original.
SharedMesh's share vertex data and it will obtain any states assigned to the original mesh. However, you can change the states of the sharedmesh individually if you want. See TestSharedMesh.
I think I'm on the right track. My problems bould be that the TerrainBlock getHeight method is returning odd values that are clearly much higher than the terrain height.