Try and Cut tri-count where ever you can, 3k is allot for plain foliage (unless you are counting trees as well) and 300 for lod2 is overkill especially for the simpler grasses which should be 20-50 maximum.
One thing to test is collision - I’ve found that even though instancing is very very performant the colliders are a big bottleneck still, and there is a bug that does not allow you to turn off colliders on LOD instances (According to epic this is being fixed but there is no timeline for integrating it into the engine yet). Try getting rid of colliders on your meshes just to see what that does to performance, and consider using simple capsules possibly.
I’ve tried killing shadows on the grass and even removing the grass completely - that won me, like, 5fps in dense grass locations, everywhere else fps stayed the same. Foliage stats say grass takes less than 1ms on average to render, seems like landscape grass is optimized pretty good so I suspect grass is not the culprit here. I’ve also made LOD distances closer - no effect again.
What’s the good polycount for “hero” trees? I’ve seen good trees in Witcher 3 and the like below 1K tris, but my problem here is I don’t have many broadleafs, most of my plants got fronds instead of simple leaves/cards.