Hi Dennes,
I have not tried to loadbalance RDP.. But here some of my thoughts about the subject.
For haproxy you should only use "Transparent ClientIP" (tproxy) if you absolutely need the client ip on the backend servers for a known purpose. The RDP-TCP connection itself wont need it. And it wont help in getting the same client connect to the same server every time..
'Balance Source' would probably work good assuming all servers stay up.. And might have 10 users on server A while 50 users are connected to server B. And even a newly connecting user could be added on server B depending on how the hash ends up..
'Least Connections' could be another option to use, together with "Stick-table persistence" on 'source ip', though you will have to think about how long a source-ip is 'remembered'..
You could also try the build-in loadbalancer, and compare if there is any performance difference between the two.?. Though i think you will find it has to few options to accompany the desired stickyness.
My two cents..
PiBa-NL