I don't think is the code...I filled all the eeprom with 0s in ICPROG an I turned the power on and off a few times without writing or reading it with my code and it got messed up....anyway here's the code of read and write:
; EEPROM READ
ee_read
movf ee_adr,W
bsf STATUS, RP1
bcf STATUS, RP0
movwf EEADR
bsf STATUS, RP0
bcf EECON1, EEPGD
bsf EECON1,RD
bcf STATUS,RP0
movf EEDATA,W
bcf STATUS, RP1
bcf STATUS, RP0
movwf read_result
return
; EEPROM WRITE
ee_write
bsf STATUS, RP1
bsf STATUS, RP0
btfsc EECON1, WR
goto $-1
bcf STATUS, RP1
bcf STATUS, RP0
movf ee_adr,W
bsf STATUS, RP1
movwf EEADR
bcf STATUS, RP1
bcf STATUS, RP0
movf write_data,W
bsf STATUS, RP1
movwf EEDATA
bsf STATUS, RP0
bcf EECON1, EEPGD
bsf EECON1, WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1, WR
bcf EECON1, WREN
bcf STATUS, RP1
bcf STATUS, RP0
btfss PIR2,EEIF
goto $-1
bcf PIR2, EEIF
return