Improper geometry of the roofline and the staircase is due to noise and/or inadequate height data (point data) of those locations in your dense point cloud.
Increasing the overlap and/or lowering the GSD of the images (ie flying at a lower altitude) will increase the amount of points that can be generated during alignment process and dense cloud generation. Thus creating a more complete pointcloud which will improve the geometry. Unless extensive use of oblique imagery is used, camera position data isn't that important. I assume you used nadir only images.