Possível solução: $ code = MsgBox (0, $ title, $ message)
Mas isso irá disparar e mostrar o MessageBox nesse ponto (não em GUICtrlSetData).
Quando você clica em "ok" no MsgBox, ele retorna o valor da sua ação conforme este link: link
Por isso, $ code retorna 1 - o que indica que você clicou em OK.
EDIT: (Agora que eu entendo o que o ICE queria ter) Use este código:
$code = 'MsgBox(0, ' & '"' & $title & '"' & ', ' & '"' & $message & '"' & ')'
Ok antes que você (e outros) me atire com WTF e todo o "e" uso, deixe-me explicar:
Quando você imprime $ code, ele gera:
MsgBox(0, "test", "messages and messages and messages")
Esse código, como o ICE gostaria, é algo que pode ser copiado e usado imediatamente no código do ICE. Daí porque a necessidade de usar aspas simples (') para bloquear o texto e colocar aspas duplas (") como um texto normal - para gerar o código acima.
Se eu não colocar uma combinação de aspas simples e duplas, elas serão geradas (algo que descobri depois de testar):
MsgBox(0, test, messages and messages and messages)
E esse código acima não funcionará depois de copiar e colar simples no AutoIt. Você precisa adicionar essas aspas (duplas ou simples).
AutoIT trabalha com aspas simples ou duplas como o marcador de texto, então fique com o que você está confortável. Quando você precisar escapar de uma aspa dupla como texto, use aspas simples como marcador de texto e vice-versa.
Espero que isso ajude.