I already said that on project chat, but the discussion is going on here as well, so ...
Is it possible to give to the parser function a substitution semantics ? If a name or an alias is replaced by a Pid on the first expansion, maybe be a html comment on the original string used to find the property for human readers, this would solve the label unstability problem.
If the label is ambiguous and cannot be substituted, then instead of subst with a Pid, it may also possible to substitute with an error span explaining it's ambiguous and suggesting the alternative properties ...