Reading serial data - from device that is breaking up streams

   if (Serial.available())
    Serial2.write(Serial.read()); // need to send "???" to initiate communication

That would take a minimum of three executions of loop() to send, though it is likely to take far more than that.

 if (Serial2.available() > 0)   // This seems redundant, yes. makes it so check protocol isn't called continuously
  {             
  while(Serial2.peek() != '>') // I know that when I get a ">" I should be done...I'm not sure it will work for all my returns 
// but it should work for most.
   {
     while (Serial2.available() > 0) {
         inSerial[i]=Serial2.read(); //read data  
         i++;      
       }
       inSerial[i]='\0'; 
      Check_Protocol(inSerial);  // the printed string should get longer and longer
   }    
 }

The inconsistent placement of the { does not make for readable code. The inconsistent indenting does not help, either.

But the biggest problem here is that you don't seem to understand just how slow serial data arrives. Kind of like how I type. Ssslllooowwwlllyyy.

You seem to think that the whole packet will arrive at once. It most certainly will not.

You need to read data, as it arrives, and save it, until the '>' arrives. Only then should you call Check_Protocol().