I figured it out. It was the outbound NAT.
I have 15 static public IP's, with 13 of them being virtual IP's, and 8 of those NAT to the inside. When I tested the second, third, etc. servers - after building the VIP and NAT - they were showing the router's IP address (using whatismyip.com) in the web browser, not their assigned external IP.
I turned the outbound mode to "manual" and ticked the "static port" box. Saved and applied the changes and now each server needing NAT to an external IP shows the correct IP.