@Pix FYI, I was just doing some testing on this exact function and I was able to add a network to the pool when using the UUID for the host's matching PIF. The UUID you were using is from the pool's network, which won't work here. For example --
Networks
[17:29 xenserver-slnqfzrh ~]# xe network-list
uuid ( RO) : a379a6e7-f099-f838-6514-486de4d56e80
name-label ( RW): Pool-wide network associated with eth0
name-description ( RW):
bridge ( RO): xenbr0
uuid ( RO) : b14a0bdd-2f77-25f7-3a76-b830ff971624
name-label ( RW): Pool-wide network associated with eth2
name-description ( RW):
bridge ( RO): xenbr2
uuid ( RO) : 00b6604f-9098-023b-5880-0ef9f8e1b437
name-label ( RW): Pool-wide network associated with eth1
name-description ( RW):
bridge ( RO): xenbr1
uuid ( RO) : e3be0e1a-9872-4b90-c851-35eb30a86920
name-label ( RW): Pool-wide network associated with eth3
name-description ( RW):
bridge ( RO): xenbr3
uuid ( RO) : c54ecffe-9467-5d5f-cb73-ec10dedef2b9
name-label ( RW): Host internal management network
name-description ( RW): Network on which guests will be assigned a private link-local IP address which can be used to talk XenAPI
bridge ( RO): xenapi
PIFs
[17:49 xenserver-slnqfzrh ~]# xe pif-list network-uuid=00b6604f-9098-023b-5880-0ef9f8e1b437
uuid ( RO) : ea3edc31-9b23-402c-a65e-2316c88febb5
device ( RO): eth1
currently-attached ( RO): true
VLAN ( RO): -1
network-uuid ( RO): 00b6604f-9098-023b-5880-0ef9f8e1b437
uuid ( RO) : 3a1ef416-787f-45b4-ace9-0147c2f3ca07
device ( RO): eth1
currently-attached ( RO): true
VLAN ( RO): -1
network-uuid ( RO): 00b6604f-9098-023b-5880-0ef9f8e1b437
Adding a VLAN
[18:27 21] xoa:xoa$ xo-cli network.create pool=63b7154a-1a6c-8642-525e-c6abb0acc941 name="VLAN20 - On Eth1" pif=ea3edc31-9b23-402c-a65e-2316c88febb5 vlan=json:20
52d18dc6-8078-a7ce-4bc5-d4337d2fb970
HTH, Dan