Well, this is getting into what we call "Time Error." Think of it this way: in the real world there are 3 physical dimensions (length, width, depth) and 1 temporal dimension (time) but in the Chronoverse there are 2 temporal dimensions (time and Time Error).
Time orders normal events. Something that happened in 600AD occured before 1000AD because that event comes first on the timeline.
Time Error orders not-normal events. Crono appearing in 600AD occurred after Crono disappeared in 1000AD because that event comes after the other on the Time Error Timeline. Essentially, Time Error in the player's perspective.
So a gate will always open up onto a specific point in time, plus Time Error. That is, the gate in Leene square, on December 30th, 8am, 1000AD, always opens to Truce Canyon, on August 12th, 10:30pm, 600AD (I am making the dates and times up for illustrative purposes). However, that is the specific point in time that the gates open to; to get the actual destination, we have to factor in Time Error.
Let us say, for the sake of illustration, that Time Error is 3 days exactly. Thus, from Leene Square, one would step out into Truce Canyon on August 15th, 10:30pm, 600AD. From Truce canyon, one would step out into Leene Square on January 2nd, 1001AD.
A human is normally only effected by normal time, but as soon as a human time travels, then Time Error gets applied to them. Thus, the 400 years between 600AD and 1000AD have a Time Error value of 0, but Crono's travels to 600AD and back have a Time Error value of somewhere around a day or so (we aren't given the specifics). So for the time that passes for him in 600AD still is passing for him in 1000AD as well (or effectively so).
Presumably, as long as the gates last long enough, if Crono spent 1 year in 600AD (well, 601AD by the time he's done) before he returns, he will return a year later in 1000AD (well, 1001AD by the time he actually steps out of the game).