well the first thing i would do is make sure your ps3 is not assigned a static ip via the ps3, you want it on a static, but you want the router giving it that ip. as an example when i go to my xbox's network settings and manually assign an ip then upnp does not work properly.
then in the router settings under the lan section go to dchp server and manually assign your ps3 an ip.
next turn upnp on via the wan section
next make sure the enable port forwarding option under the virtual server/port forwarding tab in the wan section
make sure dmz is disabled.
now do a full reboot by manually turning the power off and unplugging it! leave it off for a full 30 seconds.
when you reboot, make sure you xbox is the first device connected to the network (an iphone or 2 shouldnt matter) as a pc connecting could use upnp to forward ports the ps3 might want. i also recommend only using 5GHz if you are using wifi as sometimes i have seen explainable nat issue on 2.4.
when you ps3 connects upnp should automatically forward the ports it needs, you can see what ports are forwarded to what ips in the port forwarding tab under system log section of the router, once an port is forwarded via upnp on these routers, that rule will stay set untill a full reboot or kernel reboot.
hopefully that helps