Nada, he comprobado que realmente no se puede liberar haciendo
.Free
Entiendo que la razón será lo que hemos hablado, que el objeto no ha sido creado mediante su constructor Create y que, por tanto, me atrevo a decir que ni siquiera se trata de un objeto.
Al intentarlo salta una excepción de acceso a memoria, así que hay que liberar mediante StrDispose:
Código Delphi
[-]StrDispose(PChar(MyStrings.Items.Objects[1]));
Muchas gracias por la ayuda.
Un saludo.