Masks is the simple answer.
Each part of your function tree adds to your displacment system before the compute terrain. Compute terrain gives that displacement it's geometry position and UV. The problem now is, if you just take an output from some of your perlin functions to use as a blend mask in say a surface layer, the perlin noise will have another value where the displacement has been offset and now calculated in that tree.
Have a go with just using the x and z co-ordinates from the Get Position node (using convert x/z to scaler, then use build vector, leaving the y at zero), and displace vertically only. What this will do is create a flat noise pattern, ie it will be the same all the way through y, which you can then use as blending masks. Adjust Colour will be helpfull here too, to bring down the white levels of your perlin function to make distinct black and white shapes corresponding to your displacments, so your colour changes wont just fade from the top to the sides of your bumps.