because you're not trying to move it to the last "recorded position", but to the target's current position, resulting in
TryMove to fail because the position is occupied by the target (if both solid).
Also, TryMove is not a mare "telportation" kind of function, but it will actually try to check if the caller can "step" towards that position, which means if the difference between the heights of the sector the target is in and the sector the caller is in is bigger than the caller MaxStepHeight, it will fail, the same for the opposite scenario (and if the caller does not have NODROPOFF flag, FLOAT etc.) and several other checks.
You're also passing "0" as the second argument, meaning that if the target is even 1 map unit above/below the caller it will fail (unless it means something else, but the wiki does not say anything about it).
I don't know what your intent is here, but to teleport actors with impunity you should use SetOrigin instead, but again, I do not suggest you to teleport directly at the target location, of course, because they'll both get stuck in one another.
You should 1st: get a position close to the target but
outside its hitbox, check if the position is valid and only then teleport the guy.
(you're also getting your targetPos vector2 by getting the target position without checking if the target != null, move the check above it)