USB Serial on Leonardo is affecting a sketch

Simply why would a sketch that does not initialize, open, read, or write to Serial (Leonardo USB port) behave differently when connected to the PC (I am sure the PC initializes the PC portion) than when it is not connected.
which makes no sense to me.

The device I am interfacing with uses fixed size responses and does not send output unless it is polled.

I have documentation on the sizes or use a particular byte to set a limit.
yes I am doing some 9 bit manipulation in the code.
NO PC version

// No PC sketch

byte globalCRC[2];

void setup()
{
  Serial1.begin(19200);
  pinMode(led, OUTPUT);
}

void loop()
{

  int i;    
  byte serByte;
  byte PC;
  byte lastPoll;
  byte bonus[9]={
    0x01, 0x8A, 0x00, 0x05, 0x00, 0x00, 0x00, 0x2E, 0xDD                                      };
  int led = 13;
  int len;
  boolean mainDoorStatus;
  boolean cashDoor;
  boolean cashBox;
  boolean standDoor;
  boolean changeLight;

  UCSR1C = 0b00000110;
  UCSR1B = 0b10011101;  // turn 9th bit on
  Serial1.write(0x80);
  delay(1);
  UCSR1B = 0b10011101;  
  Serial1.write(0x81); 
  delay(1);
  UCSR1B = 0b10011100;  // turn 9th bit off
  delay(50);

  serByte=0;
  if (Serial1.available()>0) serByte=Serial1.read();

  switch (serByte)
  {
  case 0x00:
    break;
  case 0x01:
    break;
  case 0x11:
    digitalWrite(led,HIGH);
    break;
  case 0x12:
    digitalWrite(led,LOW);
    break;
  case 0x13:
    digitalWrite(led,HIGH);
    break;
  case 0x14:
    digitalWrite(led,LOW);
    break;
  case 0x19:
    digitalWrite(led,HIGH);      
    break;
  case 0x1A:
    digitalWrite(led,LOW);
    break;
  case 0x1B:
    digitalWrite(led,HIGH);
    break;
  case 0x1C:
    digitalWrite(led,LOW);
    break;
  case 0x3D:
    getTicketInfo(0);
    break;
  case 0x51:
    handPay(0);
    break;  
  case 0x57:
    printTicket(0);   
    break;
  case 0x67:    
    redeemTicket(0);
    break;
  case 0x68:
    transferComplete(0);
    break;
  case 0x71:
    if (changeLight==false)
    {
      digitalWrite(led,HIGH);
      changeLight=true;
    }
    break;
  case 0x72:
    if (changeLight==true)
    {
      digitalWrite(led,LOW);
      changeLight=false;     
      sendCommand(bonus,9);
    }
    break;
  default:
   // Do nothing with other events
    break;
  }
  delay(50);
}

void handPay(int dummy)
{
  int i;
  byte temp[24];
  temp[0]=0x01;
  temp[1]=0x1B;
  sendCommand(temp,2);
  for (i=0; i<24; i++)
  {
    temp[i]=Serial1.read();   
  }
}

void getTicketInfo(int dummy)
{ 
  int i;
  byte getVal[5]={
    0x01, 0x4D, 0x00, 0xC2, 0xAC                                        };
  sendCommand(getVal,5);
  delay(50);
  for (i=0; i<Serial1.available(); i++)
  {
    Serial1.read();
  }    
}

void printTicket(int dummy)
{
  int i;
  byte sysVal[13];
  sysVal[0]=0x01;
  sysVal[1]=0x57;
  sendCommand(sysVal,2);
  delay(50);
  for (i=0; i<10;i++)
  {
    sysVal[i]=Serial1.read();
  }      
  sysVal[1]=0x58;
  sysVal[2]=0x01;
  for (i=10; i>5; i--)
  {
    sysVal[i]=sysVal[i-3];
  }
  for (i=3;i<6;i++)
  {
    sysVal[i]=0x00;
  }
  computeCRC(sysVal,11);

  sysVal[11]=globalCRC[0];
  sysVal[12]=globalCRC[1];
  sendCommand(sysVal,13);
  delay(20);
  for (i=0; i<5; i++)
  {
    sysVal[i]=Serial1.read();
  }
}

void redeemTicket(int dummy)
{
  int i;
  byte ticket[21];
  ticket[0]=0x01;
  ticket[1]=0x70;
  sendCommand(ticket,2);
  delay(20);
  for (i=0;i<21; i++)
  {
    ticket[i]=Serial1.read();     
  }
  ticket[1]=0x71;
  for (i=4; i<9; i++)
  {
    ticket[i]=ticket[i+10]; 
  }    
  computeCRC(ticket,19);
  ticket[19]=globalCRC[0];
  ticket[20]=globalCRC[1];
  sendCommand(ticket,21);   
  delay(20);
  for (i=0; i<21; i++)
  {
    ticket[i]=Serial1.read();
  }  
}

void transferComplete(int dummy)
{
  byte transComplete[6]={
    0x01, 0x71, 0x01, 0xFF, 0x1F, 0xD0                                        };
  sendCommand(transComplete,6);
  delay(20);
  for (int i=0; i<21;i++)
  {
    transComplete[0]=Serial1.read();
  }
}

void sendCommand(byte temp[], int len)
{
  UCSR1B = 0b10011101;
  delay(1); 
  Serial1.write(temp[0]);
  UCSR1B = 0b10011100;
  delay(1);
  for (int i=1; i<len;i++)
  {
    Serial1.write(temp[i]);
    delay(1);
  }
}

void computeCRC(byte val[], int len)
{
  globalCRC[0]=0;
  globalCRC[1]=0;
  long crc;
  long q;
  byte c;
  crc = 0;
  for (int i = 0; i < len; i++)
  {
    c = val[i];
    q = (crc ^ c) & 0x0f;
    crc = (crc >> 4) ^ (q * 0x1081);
    q = (crc ^ (c >> 4)) & 0xf;
    crc = (crc >> 4) ^ (q * 0x1081);
  }
  globalCRC[0]=crc & 0xff;
  globalCRC[1]=crc >> 8;

}  // End of ComputeCRC