Thanks mackrackit and misamilanovic for the replies. I did not succeed in using I2CWRITE but was successful using SHIFTIN/SHIFOUT.
Check out my blog post HERE for more details.
But here is the PICBASIC code for a 16F88 that counts from 0-9 on all four digits.

Code:
'// for 4MHZ
DEFINE OSC 4
OSCCON=%01101000
'// for 8MHZ
'DEFINE OSC 8
'OSCCON=%01111000
While OSCCON.2=0:Wend
CMCON         =  7                 '// PORTA = digital I/O
'OPTION_REG.7  =  0                 '// Enable PORTB pull-ups
ADCON1        =  7
ANSEL=%00000000                    '// set all analog pins to digital
ANSEL = 0                          '// disable ADCs
TRISB.3 = 0
TRISB.2 = 0
'----------------------------------------------------------------------------
led         var PORTA.1
SDA         VAR PORTB.3
SCL         VAR PORTB.2
i2c_dev     var byte        'I2C device Address 
i2c_out     VAR BYTE        'data to sent over I2C bus
i2c_ack     VAR BIT         'acknowledgement bit
i           var byte
segment     VAR byte
seg_val     var byte
'----------------------------------------------------------------------------
i2c_dev = %01110000        '(112 = %01110000 = $70)
gosub startup 
GOSUB init_display   'initialize the display module
main:
   GOSUB COUNTER
   goto main
   END
    
counter:
    for i = 0 to 9
        lookup i, [189,9,117,109,201,236,248,13,253,205],seg_val
        for segment = 1 to 4
              GOSUB I2C_START
              if segment = 1 then
                 i2c_out = %01110000 : gosub i2C_tx : i2c_out = %00000001 : gosub i2C_tx
                 i2c_out = seg_val : gosub i2c_tx
                 gosub i2c_stop
              endif
              if segment = 2 then
                 i2c_out = %01110000 : gosub i2C_tx : i2c_out = %00000010 : gosub i2C_tx
                 i2c_out = seg_val : gosub i2c_tx
                 gosub i2c_stop
              endif
              if segment = 3 then    
                 i2c_out = %01110000 : gosub i2C_tx : i2c_out = %00000011 : gosub i2C_tx
                 i2c_out = seg_val : gosub i2c_tx
                 gosub i2c_stop
              endif
              if segment = 4 then    
                 i2c_out = %01110000 : gosub i2C_tx : i2c_out = %00000100 : gosub i2C_tx
                 i2c_out = seg_val : gosub i2c_tx
                 gosub i2c_stop
              endif
          next segment
        pause 100 
      next i
    return

bit_cycle:
    for i = 0 to 255
       gosub i2c_start
       i2c_out = %01110000 : gosub i2C_tx : i2c_out = %00000001 : gosub i2C_tx
       i2c_out = i
       gosub i2C_tx
       gosub i2c_stop
    pause 20
    next i
    
return
init_display:           'initialize the SAA1064 module and flash all segments
    GOSUB I2C_START     'Start the I2C communication
       i2c_out = %01110000 : GOSUB I2C_TX        'send device byte
       i2c_out = %00000000 : GOSUB I2C_TX        'send instruction byte 
       i2c_out = %00011111 : GOSUB I2C_TX        'send control byte    
    GOSUB I2C_STOP      'Stop i2C transmission
    pause 1000          ' leave segments on for 1 sec then turn off
    
    GOSUB I2C_START
       i2c_out = %01110000 : gosub i2C_tx
       i2c_out = %00000000 : gosub i2C_tx
       i2c_out = %00000001 : GOSUB I2C_TX
    GOSUB I2C_STOP
    pause 500
    
    GOSUB I2C_START
       i2c_out = %01110000 : gosub i2C_tx
       i2c_out = %00000000 : gosub i2C_tx
       i2c_out = %00010111 : GOSUB I2C_TX
    GOSUB I2C_STOP
  RETURN

I2C_START:              
    HIGH SDA
    HIGH SCL
    LOW SDA
   RETURN
 
I2C_STOP:               'I2C stop (terminate communication on I2C bus)
    HIGH SCL
    HIGH SDA
    PAUSE 1
    RETURN
 
I2C_TX:                           'I2C transmit -> send data to the slave
    SHIFTOUT SDA,SCL,1,[i2c_out]  'Shift out “i2c_out” MSBfirst
    SHIFTIN SDA,SCL,0,[i2c_ack\1] 'Receive ACK bit          
    RETURN
'// start-up led sequence
startup: 
  for i = 0 to 4
    high led
    pause 50
    low led
    pause 30
  next i
  pause 300
Return