A variable in Elmer always has its components. So when we have "Displacement" vector fields, we also have components 1,2,3.
A keyword may be a vector but its components do not exist.
The SaveMaterials in effect makes fields out of keywords. So what could be done here is make the module to be prepared to read also vectors and in that case create vector valued fields. I.e. in the code we should use ListGetRealArray instead of ListGetReal.