I was having the same problem, when I called SetMaterial in the constructor nothing would happen. I figured out setting the material directly on the static mesh and not the static mesh component worked…
static ConstructorHelpers::FObjectFinder<UStaticMesh> plane_mesh(TEXT("StaticMesh'/Engine/BasicShapes/Plane.Plane'"));
BorderMesh->SetStaticMesh(plane_mesh.Object);
static ConstructorHelpers::FObjectFinder<UMaterial> plane_material(TEXT("Material'/Game/ClassicMansion/Materials/M_FlippedBorder.M_FlippedBorder'"));
BorderMesh->GetStaticMesh()->SetMaterial(0, plane_material.Object);