Em uma resposta curta, você precisa encerrar o SSL no balanceador de carga se quiser que o X-Forwarded-For funcione.
Caso contrário, em uma configuração típica com um balanceador de carga "estúpido", o balanceador de carga age apenas como um intermediário entre o VIP e o IP real - resultando na exibição dos IPs do balanceador de carga nos logs. O balanceador de carga não pode inserir um cabeçalho se não puder descriptografar o tráfego.
Quanto ao balanceamento de conexões TCP, isso é essencialmente o que você está fazendo se não estiver finalizando o SSL no balanceador de carga.
É possível que um NetScaler ou alguma forma de dispositivo proxy possa ser configurado para registrar solicitações por IP, mas sem a chave privada não seria capaz de determinar as especificidades da solicitação, como o URI ou o método de solicitação.