Ah the joys of working with terrain in 3D. Long story short is to create boundaries defining areas that may change prior to modeling everything. That way each ‘zone’ can be grouped or made into components independent of one another. That won’t solve everything but it’ll limit the damage when (not if) something changes.
If you haven’t set it up in advance to change, then you can ‘clip’ out areas at any time. See a simplified example:
1.) Draw a flat boundary directly above the terrain that encompasses the terrain area that needs to be revised.
2.) Extrude the boundary tall enough to cover the depth of the slope and move down into slope.
3.) Make sure that your extruded boundary is INSIDE your terrain group and then intersect with either model or selection.
4.) You now have an area that represents the extent of change on your surface. This red area in the example can be grouped and frozen (if needed later) or deleted.
5.) You now can safely change the surface / terrain within the boundary. Here it’s shown as a component given that often there are lots of objects on the surface so you can set your component fade to hide, turn off surface objects layers, or, like shown copy and work on the new area off to the side, watching as the boundary area updates in place.
Same technique applies to working with objects on the surface. If you haven’t organized things to change in advance, you can clip things like curbs or retaining walls where needed and re-model just affect areas only.
Post some images of your progress to help share your opportunities and constraints with others
***UPDATE. Some people who read this will say it’d be easier to drape the change boundary vs extruding and intersecting but in my experience, the more complex the surface, the more likely that draw can’t complete a closed loop - whereas intersect almost always can.