Yeah, you really should spend some time getting that logic analyzer working and understand what it does. It's NOT an oscilloscope and although newer versions of the software does allow it to continously stream and display that's not really its intended purpose.

Anyway, here's what I'd try (and I'd have the logic analyzer hooked up)
Code:
Chip_Address	VAR BYTE
Mem_Address	VAR WORD
sda		VAR portb.1
scl		VAR portb.0

Chip_Address = 160

' The chip address must be a BYTE, this is the 160 + whatever A0-A2 is set to.
' The memory address must be a WORD for the 24C256, this is the address of the byte to written (or read)
' The data to be written is, in this case, a BYTE but it does not have to be, you can write words or arrays - which are obviously just multiple bytes...

FOR Mem_Address = 0 to 12
  '        I/O  I/O       BYTE        WORD             BYTE
  I2CWrite sda, scl, Chip_Address, Mem_Address, [Mem_Address.LOWBYTE]
NEXT
And I'd like to thank Richard for the primers on PBP I2C the last couple of days, much appreciated!