That's totally normal !
Your WRT54G is doing masquerading (the Linux word) : since most internet users have only one public IP, the routers are made so that they translate all private IPs (192.168.0.0, 172.16.0.0, 10.0.0.0) to the IP they have on their Internet interface. That's a classical routing functionality.
If you configure your 5 public IPs on your LAN machines, they should be able to ping each other if they're connected on the same switch/hub. But assuming your public IPs are 184.108.40.206, 220.127.116.11 and that you also use the private IPs 192.168.0.1, 192.168.0.1 :
18.104.22.168 can ping 22.214.171.124
192.168.0.1 can ping 192.168.0.2
192.168.0.1 canNOT ping 126.96.36.199 : they're not on the same subnet.
Here's the LAN topology you should have :
PC1 (private dhcp IP)---
|--- Ethernet or wireless WRT54G Internet iface---
PC2 (private dhcp IP)--- |--- Hub --- modem
PC3 (public IP address)---
Every pc connected to your routeur must use private IP (since they're routed !)
Every PC connected to the hub must use a public IP (since they're not routed !)