Claudio,
You want to return a list, the first element of the list is your first child element partiesNumber, the second element of the list is your list of parties:
return [list $partiesNumber $partiesList]
Also, on your return type, you have two colons after the name, I haven't checked if this matters or not, or if it should matter or not:
{PartiesNumber::parties::partiesNumber}
About parameterizing the names of the request and response elements: yes this needs to be dealt with. There is a slightly larger problem to fix or clarify in this area, I think the issue is that you can pre-create request/response types if you name them ${procName}Request and ${procName}Response, but by pre-creating them, they are not again created when you use <ws>proc, although you can do things like change the default value from what was specified in the complexType. In tWSDL, you can name simpleTypes, complexTypes, messages, operations, ports, etc. all with the same name without any problem. However, it is sometimes confusing to track down errors if you don't put a trailing chunk of text which helps identify what the name applies to.
Anyway, I had thought of parameterizing these, and I believe I put some namespace variables in the <ws>namespace to use, but then I didn't use them. So I'll look at that to see if it can be quickly fixed.