The function handle_set_active_port in src/modules/dbus/iface-device.c requires the requested port to be submitted as a path of the form /org/pulseaudio/core1/sink0/port0, which is consistent with what handle_get_active_port returns. However inside in that function there is a call if (!(new_active = pa_hashmap_get(d->ports, new_active_path))) { but the d->ports is indexed by the name of the device, not the path, so it cannot find a matching port. As you can't pass the name of the device as an argument, it is therefore not possible to select the port over dbus.
Thanks for reporting! I'll attach a patch that hopefully fixes this.
Created attachment 108804 [details] [review] fix
I applied the patch to master now.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.