I believe the original issue is your fault - or more precisly, your Asset’s fault.
The angle is driven by the grid placement plus the Pivot point of the mesh.
Take a mesh that 1m x 1m. Place the pivot at its center.
Paint the mesh as foliage and align to grid.
You should always have accurate matchup of normals.
Put the pivot anywhere else - you likely get issues.
The other option is that the normals for the landacape are just bugged.
You can verify this by way of export to mesh and checking the normals value via any DCC.
In the case of your second image, it really looks more plausible that the landacape has wrong normal values…
It could also be that the grid system for placement is calculating the wrong normals btw - but debugging that is just painful.
I guess make a flat mesh that prints the normal value of the pivot point , then paint it. And you’d find out precise values from the engine…