I copy them using &SourceMesh->RenderData->LODResources[0].VertexBuffer->VertexTangentZ(). I tested that previously using the world normal visualization mode (see OP), but testing it now using PixelNormal in the material, I see that something’s wrong:
(left: source mesh, right: procedural copy)
(from the other side)

I got that way of retrieving the vertex normal data from this answer, but maybe it’s not correct, or I’m doing it wrong. Ideas?

