Troble getting data with PIC14000 through I2C

I’ve been trying to make a program to communicate with a PIC14000 with my Arduino/Genuino 101 (UDOO x86). The main problem is when information is being printed to serial, I only get one part of my information and then It goes back to garbage information. For example here is my serial output.

Serial Output

Design Capacity: 65535
Design Voltage: 65535
Serial Number: 65535
Specification Info: 65535
Cycle Count: 65535
Voltage: 16.50 <------------------------------------ This is the only one correct
Full Charge Capacity: 65535
Remaining Capacity: 65535
Relative Charge(%): 65535
Absolute Charge(%): 65535
Minutes remaining for full charge: 65535


// And Then it goes back to all garbage
Design Capacity: 65535
Design Voltage: 65535
Serial Number: 65535
Specification Info: 65535
Cycle Count: 65535
Voltage: 65.54
Full Charge Capacity: 65535
Remaining Capacity: 65535
Relative Charge(%): 65535
Absolute Charge(%): 65535
Minutes remaining for full charge: 65535

I don’t know what im doing wrong and this is my first time using I2C with a PIC. My code is below, if you could point out what im doing wrong, I would greatly appreciate it. Thank you!

Program Code

#include <Wire.h>

// standard I2C address for Smart Battery packs
uint8_t deviceAddress = 11;

// Standard and common non-standard Smart Battery commands
#define BATTERY_MODE             0x03
#define TEMPERATURE              0x08
#define VOLTAGE                  0x09
#define CURRENT                  0x0A
#define RELATIVE_SOC             0x0D
#define ABSOLUTE_SOC             0x0E
#define REMAINING_CAPACITY       0x0F
#define FULL_CHARGE_CAPACITY     0x10
#define TIME_TO_FULL             0x13
#define CHARGING_CURRENT         0x14
#define CHARGING_VOLTAGE         0x15
#define BATTERY_STATUS           0x16
#define CYCLE_COUNT              0x17
#define DESIGN_CAPACITY          0x18
#define DESIGN_VOLTAGE           0x19
#define SPEC_INFO                0x1A
#define MFG_DATE                 0x1B
#define SERIAL_NUM               0x1C
#define MFG_NAME                 0x20   // String
#define DEV_NAME                 0x21   // String
#define CELL_CHEM                0x22   // String
#define MFG_DATA                 0x23   // String
#define CELL4_VOLTAGE            0x3C   // Indidual cell voltages don't work on Lenovo and Dell Packs
#define CELL3_VOLTAGE            0x3D
#define CELL2_VOLTAGE            0x3E
#define CELL1_VOLTAGE            0x3F
#define STATE_OF_HEALTH          0x4F

void setup()
{
  Serial.begin(9600);  // start serial for output
  while (!Serial);
  Wire.begin();
}

int fetchWord(byte func)
{
  Wire.beginTransmission(deviceAddress);
  Wire.write(func);
  Wire.endTransmission();
  Wire.requestFrom(deviceAddress, 2);
  byte b1 = Wire.read();
  byte b2 = Wire.read();
  return (int)b1|((( int)b2)<<8);
}

void loop()
{ 
  Serial.print("Design Capacity: " );
  Serial.println(fetchWord(DESIGN_CAPACITY));
  
  Serial.print("Design Voltage: " );
  Serial.println(fetchWord(DESIGN_VOLTAGE));

  Serial.print("Serial Number: ");
  Serial.println(fetchWord(SERIAL_NUM));

  Serial.print("Specification Info: ");
  Serial.println(fetchWord(SPEC_INFO));
 
  Serial.print("Cycle Count: " );
  Serial.println(fetchWord(CYCLE_COUNT));
 
  Serial.print("Voltage: ");
  Serial.println((float)fetchWord(VOLTAGE)/1000);

  Serial.print("Full Charge Capacity: " );
  Serial.println(fetchWord(FULL_CHARGE_CAPACITY));
  
  Serial.print("Remaining Capacity: " );
  Serial.println(fetchWord(REMAINING_CAPACITY));

  Serial.print("Relative Charge(%): ");
  Serial.println(fetchWord(RELATIVE_SOC));
  
  Serial.print("Absolute Charge(%): ");
  Serial.println(fetchWord(ABSOLUTE_SOC));
  
  Serial.print("Minutes remaining for full charge: ");
  Serial.println(fetchWord(TIME_TO_FULL));
  
  Serial.println(".");
  delay(1000);
}

Post the complete wiring of your setup. At which voltage do you drive the PIC? Is that PIC battery pack controller a DIY project? If yes, please post that code and schematic too. Otherwise post a link to the manual.