pupnp is based on the original libupnp code, and the age shows... Using it in an application is, in my opinion, painful. It doesn't seem like a big thing when you're just testing things but when you have a complex application the pain is quite real.
A thing to note about Platinum is that it's GPL unlike most linux libraries. That and the fact that it's not even available in the main linux distributions has meant that I've never tried it, so I can't review it in more detail.
My own choice would be GUPnP (although you could easily call me biased): It's written in C, using Glib and it's licensed under LGPL. Mobile and set-top style devices made with GUPnP are used out there in the real world right now. Both UPnP and DLNA have certified devices and services made with GUPnP. The library does have some dependencies (libsoup, libxml2) but I believe those are there for good reasons. The API mostly manages to make things easy for the user without sacrificing performance -- and that's something most upnp stacks cannot claim.