Esto funciona con iconos de 48x48 (es ABSURDO, pero funciona):
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
Ico: TIcon;
begin
Ico := TIcon.Create;
try
ConvertTo32BitImageList(ImageList1);
Ico.LoadFromFile('icono48x48.ico');
TrayIcon1.Icon := Ico;
ImageList1.AddIcon(TrayIcon1.Icon);
finally
Ico.Free;
end;
Si pongo lo siguiente, deja de funcionar y vuelve con la chorrada del tamaño:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
begin
ConvertTo32BitImageList(ImageList1);
TrayIcon1.Icon.LoadFromFile('icono48x48.ico');
ImageList1.AddIcon(TrayIcon1.Icon);
end;