I use terrainblocks - but I have to call .updateFromHeightMap() on my TB each time I modify it - I suspect trimesh has something similar after you modify the underlying height array?
I figured out the problem (unrelated to this, had forgot to initialize something).
I'm doing a TriMesh that changes number of used vertexes (it's a brush stroke in a painting application). To get it to ignore the vertexes that are not yet used from the buffers, I had to set the limit of the vertex, index, etc. buffers, and then call the reconstruct method of TriMesh, passing in always the same buffers. This way I can vary the number of vertexes I'm using in the TriMesh (up to the maximum size of the buffers I have allocated). Setting the limit is a bit tricky (first set position, then call flip… the buffers have a weird API).
I also called updateModelBound(), as I guess that is needed to recalculate the bounds whenever changing the geometry manually.