Fixed!
Shrew works perfectly for me on Linux now.
In summary, I had to disable spoof protection.
Here is what I had to do in order to get it working:
Modified /etc/sysctl.conf
Modifed /etc/sysctl.d/10-network-security.conf
Changed .rp_filter=1 to .rp_filter=0 for all occurances
Rebooted
I also posted more information on my website.
All devices are now working through IPsec with PSK and XAuth.