Well, I have just got it working. The solution may be very specific to my scenario.
First, I need to go through and test all the individual changes I made to ensure each one was needed, remove the cruft that was not needed and I will post the final solution here there after.
What I had to do in this scenario was go Pfsense A, go to advance settings of IPsec, From there:
Auto-exclude LAN address Enable bypass for LAN interface IP
Exclude traffic from LAN subnet to LAN IP address from IPsec.
This box was checked by default.
I cleared it and traffic is now working both ways.
I suspect what mattered here was the fact that Pfsense A didn't have a LAN subnet, and OpenVPN client subnet may have been seen as a LAN by this rule. I am sure one of the Pfsense developers could provide an explanation.
Now I just need to check all the routes, rules, Phase 2 parts to ensure they are needed.