In case anyone else needs an answer to a similar problem, while searching for something entirely unrelated, I came across this link
https://forum.pfsense.org/index.php?topic=42532.0
In the final post was the solution to my problem which I have cut and pasted from there to here for ease of reference and added some notes of my own relating to the key points.
The following also pertained to my situation…
"The router had already been in production for a while and had some NAT port forwards configured"
"I assumed those rules would carry right over to the CARP setup because the destination was WAN."
The following is what got me on the right track ....
"I went to make a new rule for some reason or another and noticed that there was a new destination choice called WAN CARP (what I had named that VIP). When I realized the firewall was discriminating between real IPs and virtual IPs, I had my answer."
This bit summed up my situation perfectly too ...
"I guess I just assumed that my rules were all per-interface, but they're actually more granular than that. Changed all my regular stuff to the CARP destination"
When I did the above - it worked. As the original poster sad, it is worth noting that the NAT rules are quite so granular ...