Hi Ben,
1) Could be that you just need to scale the bounding box of your CSGeometry properly to get it running.
Code:
geo.SetBoundingBox(Pnt(xmin,ymin,zmin),Pnt(xmax,ymax,zmax))
If a part of your geometry reaches out of the default domain (should be a cube [-1000,1000]^3), the find edges algorithm might not succeed.
2) When you scale everything properly (every maxh and the bounding box) you should get similar numbers of elements. See the attached file.
Best,
Christoph