Just want to point out the Issues I found, btw like what you have done. I was going to make my own but I don't have time.
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in SceneEngine.dll
in SceneEngine.Heightmap.cs : Ln 624
triangles[triangleIndex] = new Triangle(vertices[x + y * size].Position,
vertices[x + (y + 1) * size].Position,
vertices[(x + 1) + y * size].Position);