I don't know about Snort but I know a bit about load balancers. So here's a few things that might be useful.
Move the Snort sensor to be before HAProxy.Leave the sensor where it is but turn HAProxy into a transparent proxy. This requires the "usesrc clientip" directive.- Leave the sensor where it is but let HAProxy insert the "x-forwarded-for" header (if you're using HTTP) and then let Snort read that header by using the "enable_xff" directive
EDIT: Removed suggestions incompatible with TLS decryption. The remaining suggestion should work for HTTP (only HTTP). And only useful if you've got something that can decode the unified2 data (barnyard2, u2pewfoo) as that's what Snort will record the "True-Client-IP" into, there's no option to have it be logged as the origin. See URL below for further information.