I could not see the problem with your code so I made a test myself.
When the EEPROM address reaches 255 the data read back for Min and Sec is FF.

Must be crossing the boundary of rolling over because the EEPROM is full?
It has been a long day and I am getting my bits and bytes and K and k mixed up.
Anyone wants to clear me up we are using
http://www.microchip.com/wwwproducts...cName=en024639

Here is my test
Code:
'FL PIC18F6680
'  18F6680(PIC)  24FC1025(EEPROM)  DS1337C(RTC)
    DEFINE OSC 20
    @ __CONFIG    _CONFIG1H, _OSC_HS_1H
    @ __CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    @ __CONFIG    _CONFIG4L, _LVP_OFF_4L
    DEFINE LCD_DREG     PORTG
    DEFINE LCD_DBIT     0
    DEFINE LCD_RSREG    PORTE
    DEFINE LCD_RSBIT    0
    DEFINE LCD_EREG     PORTE
    DEFINE LCD_EBIT     1
    DEFINE LCD_BITS     4
    DEFINE LCD_LINES    4
    DEFINE LCD_COMMANDUS    3000
    DEFINE LCD_DATAUS   150

    DPIN    VAR PORTB.2    'I2C DATA PIN
    CPIN    VAR PORTB.1    'I2C CLOCK PIN
    ADDR    VAR WORD
    DATI    VAR BYTE
    DATO    VAR BYTE

    ' -------------- RTC definitions -----------------
RTC CON     %11010000
SecReg CON $00 ' seconds address (00 - 59) ' MSB of SecReg must be set to a 0 to enable RTC
ContReg CON $0E ' control register
cntrl CON %00000000 ' sets the SQW/OUT to 1Hz pulse, logic level low
I2CWRITE DPIN, CPIN, RTC, ContReg, [cntrl]
' The variable below holds the values entered:
' entered by the user
sec VAR BYTE ' seconds
mins VAR BYTE ' minutes
hr VAR BYTE ' hours
day VAR BYTE ' day
date VAR BYTE ' date
mon VAR BYTE ' month
yr VAR BYTE ' year
Esec VAR BYTE ' seconds
Emins VAR BYTE ' minutes
Ehr VAR BYTE ' hours
I   VAR BYTE
    PAUSE 1000
'GOSUB SET_RTC

RUN: 
ADDR = 0
'SAVE DATA
FOR I = 0 TO 100   
ADDR = ADDR + 3
I2CREAD DPIN, CPIN, RTC, SecReg, [sec,mins,hr,day,date,mon,yr]
PAUSE 100
I2CWRITE DPIN,CPIN,$A0,ADDR,[hr,mins,sec]
PAUSE 100
I2CREAD DPIN,CPIN,$A0,ADDR,[Ehr,Emins,Esec]
PAUSE  100
LCDOUT $FE,1,"RTC ", HEX2 hr, ":", HEX2 mins, ":", HEX2 sec
LCDOUT $FE,$C0,"EEP ",HEX2 Ehr, ":", HEX2 Emins, ":", HEX2 Esec
LCDOUT $FE,$90,"ADDR ", DEC ADDR
PAUSE 1000
NEXT I
'READ SAVED DATA
ADDR = 0
FOR I = 0 TO 100
ADDR = ADDR + 3
I2CREAD DPIN,CPIN,$A0,ADDR,[Ehr,Emins,Esec]
PAUSE  100
LCDOUT $FE,1,"READ SAVED "
LCDOUT $FE,$C0,"EEP ",HEX2 Ehr, ":", HEX2 Emins, ":", HEX2 Esec
LCDOUT $FE,$90,"ADDR ", DEC ADDR
NEXT I
GOTO RUN