O sea mas concretamente el error estaba en que sin darme cuenta estaba Bloqueando 2 veces la lista en la misma linea y por eso me explotaba.
Código Delphi
[-]
TIdContext(TCPServer.Contexts.LockList.Items[TCPServer.Contexts.LockList.Count -1]).Data := TObject(NewClient);
Cuando en realidad la forma correcta seria meter el LockList es una variable de tipo TList para poder acceder a ella mas o menos de esta forma.
Código Delphi
[-]
...
var
vLista: TList;
begin
vLista := TCPServer.Contexts.LockList;
end;