What you could do is traverse along the spline path using GetLocationAtDistanceAlongSpline and do a line trace each time to detect the location of the landscape and use those locations to create a new spline which should more accurately follow the landscape depending on the distance between each line trace as you traverse through it and how much the landscape changes.
Something like this should work just replace OriginalSpline with the spline you made when using FindPathToLocationSynchronously as was done earlier in this thread: