SIM800C Serial Read Problems

You are making it more difficult than it needs to be!

//listen for communication from SIM800 and write to Serial Monitor
if ( SIM800.available() )   
{  
    Serial.write( SIM800.read() );  
}

//listen from communication from Serial Monitor and write it to SIM800
if ( Serial.available() )   
{  
    SIM800.write( Serial.read() );  
}