Let me guess. Your timer is running 60000 milliseconds. In the last program cycle, let us say, 59998ms, is still not elapsed. The first scan which "sees" the timer elapsed, is the next cycle, e.g. 60004ms. Now you have lost 4ms and you will start next instance of the timer. In the second minute the situation will be similar and the error will accumulate. After many loops of the timer you can get gross inaccuracy.
The better solution of your task is to use system real time clock: In the system integer SI30 you have actual second in minute. If your minute counter will be incremented if ((SI30 == 0) AND (SB13 == ON)), your task will be more accurate. (SB13 is on every second for one program cycle).
Next possible solution is using of SI36, minute in hour. If you put (((SI36 mod 6) == 0) AND (SI30 == 0) AND (SB13 == ON)), you will get one pulse every six minutes, i.e. every one tenth of hour. ("Mod" stands for modulo, the remainder after integer division).