simple serial issue

Just add the common ground and go back to the software serial code, you can't upload because pins 0 and 1 are also used for the bootloader. If you attach something to them, it can easily interfere with the upload, that's why we were all skeptical of that method at the beginning. Plus, you would see all the data twice, once when it was sent to the Arduino and PC from the GPS, and then again when the Arduino sent it to the PC.