UART's not working with my MEGA

So you can upload. Which means that the uart connected to the usb chip works.

Start simpler. Connect 18 and 19; nothing else connected except for the PC.

void setup()
{
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop()
{
  // if something available from the PC
  if(Serial.available() > 0)
  {
    // send it to serial 1
    Serial1.write(Serial.read());
  }

  // if something available on serial 1
  if(Serial1.available() > 0)
  {
    // send it to PC
    Serial.write(Serial1.read());
  }
}

The above should echo what you enter in serial monitor.

Not compiled, not tested.
Compiled and tested on a Leonardo; should behave the same on a Mega.