well, it's working as intended actually.
every tick all values are stored for use.
and on tick 1, green coordinates are "A". and you're telling purple to go to place A, that is green location for tick 1. Green's stored location is not going to be B until after it has been moved, which won't happen until tick 2.
what you're asking for is that somehow the games stores all the values in a non-existent tick 0 that happens before the command is even issued.
what you're doing with the "wait x seconds" actions, is effectively tell the game to wait for tick 1 to finish, at which point green's locations is stored at the destination.