I'm going to assume you had a typo in your description, and that the WAN IP address of the WRT54G is not identical to the LAN IP address of the D-Link. With that assumption:
The D-Link needs to pass a default gateway to all devices connected to its LAN side of 192.168.0.200. The WRT54G needs to pass a default gateway of all devices connected to its LAN side of 10.0.0.1. The pfSense box needs to give all devices connected to its LAN side a default gateway of whatever the pfSense WAN IP address is. Now, you'll also need two static routes on the pfSense box. One for destination 10.0.0.0, netmask 255.0.0.0, and gateway 192.168.0.200. The other for destination 192.168.10.0, netmask 255.255.255.0, and gateway 10.0.0.1 (or whatever the correct WAN IP of your WRT54G is). On the D-Link, you'll need a static route for destination 192.168.10.1, netmask 255.255.255.0, gateway 10.0.0.1 (again whatever the correct WAN IP of the WRT54G). On the WRT54G and the D-Link make sure NAT is turned off. This setup should allow any computer inside your network to ping any other computer inside the network. As for the virtual interface, I'm not sure why this would even be needed in this situation. Remove it and try the above-mentioned static routes and see if it works. Ben
