I've just read TU's detailed comment and thought I could explain a part of this is simpler terms, although it simplifies a few things.
Let's assume you do all your displacements before the compute terrain node. When you add a population to sit on the ground, TG2 will just "ask" the compute terrain node at which altitude the terrain is at any given position. The compute terrain node knows this, because it's part of what it does: computing the altitude of the terrain for any given point on the planet. So it tells the populator to put tree instance 123 at 51 meter altitude, for example.
Now, let's assume there is one additional displacement after the compute terrain. Now your populator still asks the compute terrain node at which altitude to put the instances of the population. The compute terrain node will answer with the same coordinates like in the previous example, except that now these coordinates are wrong. Applying displacements after the compute terrain node essentially means you hide them from the compute terrain node. It won't know about them.
The way for you to fix this is to either move the additional displacement also before the compute terrain node, or add a second compute terrain node after your additional displacment. Be warned though, each additional compute terrain node doubles the render time. Pretty much.
Once you have understood the above, next thing you need to learn is about the patch size setting in the compute terrain node. You can think about the compute terrain node to have a practical mind. It doesn't compute the altitude and slope for every infinitely small point on the planet. It would never finish! So what it does is that at default settings it computes altitude and slope for every 20 meter only. If the populator for example wants to place an instance of a tree right in the middle of four known points (that are all 20 meters apart), the compute terrain note replies to the populator with an "educated guess" - based on the values around the known points - how high and steep this point in the middle probably is. So if in this 20m square, there is an unexpected dent or peak, the tree will be placed above or below the "real" ground.
Now, in most cases the 20m grid is sufficient enough. If you find it's not working for you, just decrease the patch size to say 10m or 5m. In practice I found that yes it's slower but not that much in many cases. It's worth trying.
Lastly, as a rule of thumb: displacements that are *much* smaller than the patch size are ok to happen after the compute terrain node. Every little 2cm fake stone is a displacement, but in most cases when the patch size is 20m, it doesn't matter if you place them after the compute terrain.
Regards,
Frank