ATMega328 Bootloader Not Working

do these things come set from the factory requiring an external crystal or something?

The normal "burn bootloader" process first programs the fuses and lock bits, then loads the bootloader, and then changes the lock bits again; a three step process. For most types of Arduino, the initial programming of the fuse bits will set the chip configuration to REQUIRE an external crystal; if you don't have a crystal, the subsequent steps will fail. To program a chip using the internal clock without an external crystal, you'll need a special BOARDS.TXT entry that has different fuse byte values!