I originally flashed my own v19.07.1 firmware and noticed UPnP wasn't displaying anything and devices were complaining that UPnP wasn't available. I then downloaded the pre-made official OpenWrt firmware flashed that and UPnP still didn't work. I then tried compiling a bare minimal version with just the basic non-SSL LuCI collection and the LuCI-app-upnp package and that did the same.
To rule out v19.07.1 being the issue I downloaded v18.06.7 and UPnP worked straight away. I then compiled the same bare minimal version as above but on v18.06.7 and it worked.
Over the weekend I cloned both v18.06.7 and v19.07.1 from GitHub into two separate directories. I managed to copy the files for miniupnpd from v18.06.7, replace the ones in v19.07.1 and compile successfully. I now have a OoenWrt v19.07.1 with a working UPnP.
However, even though it works there must be a better way I can apply the v18.06.7 version of miniupnpd to future builds easier rather than replacing files?
Though as you said it'll be good to get to the source of the problem.