For the reader's sake, this is what I ended up doing…
On the Production Subnets' firewall:
Add an "IP Alias" type Virtual IP on the Subnet B interface, setting the IP address set to an unused IP on that subnet
Add a port forward on the Subnet B interface (NOT the WAN interface) from the VIP to the Host Z IP
On the Test Subnet firewall:
Add an "IP Alias" type Virtual IP on the LAN interface, setting the IP address equal to that of Host Z
Add a port forward on the LAN interface (again, NOT the WAN interface) from the Host Z VIP to the upstream firewall's VIP on Subnet B
Note that this works only for protocols that are supported by pfSense's NAT-ing capabilities. Since ours was a database connection (TCP 1433), this works just fine.