Monitor sources are not considered valid
Function update_source in gvc-mixer-control.c considers any source with a non-invalid monitor_of_sink property to not be a valid source. Unfortunately, with more complex Pulse setups, monitor sources can be the only way to get the audio input data you want e.g. null sinks. In addition to this, any sources that are the result of intermediate Pulse module are considered valid input, even if in your configuration they aren't. In addition, there's no supported way to change monitor_of_sink via config files or pacmd.
Perhaps a more flexible approach would be to check the contents of pa_proplist for the device.class property, which is set to "monitor" for monitor sources but which can also be changed after a source is created. This would also provide a path for marking intermediate sources as invalid inputs.