Note: I'm going to make a new post instead of editing my existing one. I did not see an error message when I submit my changes, so I'm going to make a new post documenting my experience with NAT.
Okay, so I'm going to document my experience with NAT in pfSense.
Let's change the destination to 10.249.1.0/24.
Rule 1:
Interface: WAN
Source: any
Destination: 10.249.1.0/24
Translation Address: 10.249.0.0/16
Pinging 10.249.1.100 works and pinging 10.249.2.100 does not work.
So, changing the destination to 10.249.2.0/24 makes pinging 2.100 working, but 1.100 does not.
I'm going to reset the destination to 10.249.0.0/24 and modify the translation address to 10.249.0.0/24. I'm going to give it a try:
Rule 1:
Interface: WAN
Source: any
Destination: 10.249.0.0/16
Translation Address: 10.249.0.0/24
Setting translation address to 10.249.0.0/24 works fine when pinging .1.100 and .2.100.
What happens if I set the translation address to just interface address?
Setting the first rule to WAN address won't work because pfSense does not seem to reach back to .0.101 when I try to ping .1.100 and .2.100.
So it makes sense to think that pfSense will translate the packets back to the originating host's IP address and not the interface address (172.24.9.2). I don't know how that works, but hey, it works. Maybe somebody could explain why using the local /24 LAN subnet works.