There is another one to use when you move the landacape that was removed in later versions but was important in .25/26 that I cannot find again.
But yes, the core problem is the collision.
What one can do to fix this is to move the pivot at the middle of the plant or cluster so they sink below the landscape anyway.
Then you use the material and vertex paint to move the tips of the leaves/cluster up on Z as much as you need.
Theoretically (because the engine is in such a pitiful state that to make this in practice you need time, patience, and miracles) you can even read a heightmap value from the RTV system to determine just “how high” the grass tips need to go.
And naturally, if you are able to do that, you can also manipulate the bottom of the plant to get a more accurate - material adjusted - position.
With the older engines, and without RTV, you can still get dynamic lenght grass going by utilizing the landacape paint layer paint value.
0 (no color) is no change 1 (full color) is full change.
If you assign values around 10cm (or unreal units) max, you get some ptetty nifty default effects at relatively low perromance impacts.
Worth mentioning is that if someone has the time to figure it out, a custom .usf with shader code that generates the leaves in clusters is going to work billions better than anything you do with instancing and meshes.
Its Rendering only, requires no modeling, and will outperform anything else you come up with while also looking a lot better than your avarage grass mesh;
An end result of this can be seen in Gost of Tsushima.
You can check out some optimizations and cool things that can be done using HLSL directly here: