Ah, I see exactly what’s happening — this is a known limitation in Unreal Engine (including 5.6):
When you use World Position Offset (WPO) in a material, Nanite meshes no longer cast dynamic shadows from the offset geometry. Nanite evaluates shadows from the base mesh only, and currently doesn’t account for vertex displacement applied in the material. That’s why your foliage painted with the Foliage Tool looks correct visually, but shadows disappear or stay “stuck” to the original mesh position once WPO is enabled.