That's a very clever approach, @Steve_Dxn! Note that the underlying value saved for each of the choices will be literally the text ${pname2}
, etc. That is, they will not get expanded. The fact that the correct names are displayed in the select works kind of accidentally in Collect, I'd say. I put the details in the issue @martijnr linked to above.
The approach I would take is described at Generate multiple choice alternatives, based on the answers in a repeat - #4 by LN. Unfortunately, it currently requires modifying the form XML. There is a proposal to support it in XLSForm and hopefully that will happen soon: https://github.com/XLSForm/pyxform/issues/38