A resposta para Evite espaços em branco extras quando a tubulação de dados em um script em lotes do Windows explica seu problema perfeitamente. Eu vou traduzir essas respostas para o seu código. Essencialmente, existem dois dos três exemplos de código que você pode usar, desde que você não esteja lidando com variáveis ambientais.
1) Adicione um CMD / C extra onde você obtém explicitamente o comportamento exato que está procurando
cmd /c "echo aaa&echo bbb&echo ccc"|clip
3) Introduzir a expansão atrasada de uma variável de alimentação de linha - uma técnica de sopro mental desenvolvida por jeb
set ^"LF=^
%= This creates a linefeed character =%
"
(echo aaa%%LF%%echo bbb%%LF%%echo ccc%%LF%%)|clip