Eu me deparei com esse mesmo problema hoje. Parece que o Windows usa o menor endereço IP numerado em uma interface como o IP da interface primária na tabela de roteamento, independentemente da ordem em que foram especificados ou adicionados. Não consigo encontrar uma fonte para confirmar isso.
Para adicionar IPs adicionais a uma interface e ter certeza de que eles não são usados como o IP de origem para conexões de saída, você deve usar o seguinte comando:
netsh interface ipv4 add address "Interface Name Here or Index #" address=x.x.x.x mask=y.y.y.y skipassource=true
A parte chave é skipassource=true
.
Você pode confirmar se funcionou corretamente com o seguinte comando:
netsh int ipv4 show ipaddresses level=verbose
Infelizmente, você não pode fazer essa alteração em um endereço IP existente, por isso deve ser excluído e adicionado novamente.