From the UDN ticket:
When using MaterialExpressionLandscapeLayerBlend with material attributes as inputs, the output material attributes have wrong sizes: ie output Normal attribute cannot be converted from tangent space to world space because TransformVector return error "[SM5] (Node Transform) input must be a vector (0.00000000: float) or a scalar (if source is Tangent)"
Another thing I noticed is that the size is detected using FMaterialAttributeDefinitionMap::GetValueType(Compiler->GetMaterialAttribute()). However GetMaterialAttribute do not return a valid FGuid when working with Custom outputs (such as runtime virtual texture normal).
In the attached screenshot you can see the issue. When Test is False material editor detect an error. When Test is True the issue disappears. This can be a workaround but it will usually appears in a lot of attributes in complex materials.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-145774 in the post.