Hello Adam,
an OPC UA information model can be seen as a graph of nodes.
Every node can be an object, a variable, a method, and so on.
And the edges between the nodes (references) describe their relationships.
For example containment, type/instance relationships, inheritance, and also custom relations (referencetypes).
1) The identifier of the nodes must be unique. This is why you get an error.
However, the displayed name of the nodes can be set independent from the identifier.
You can have a look at the '/examples/server_variable.c' for an example.
2) Every node needs at least one relation (reference) to a parent. So the graph of nodes is always connected.
For that, you need to supply the identifier of the parent and the identifier of the relation type.
Best regards,
Julius