atmega328p on breadboard using ftdi to upload sketches @8mhz 3.3v
I would suspect that the 328P's fuses were not programmed as defined in the boards.txt This needs to be explicitly done.

uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F


if not done. several things can go wrong.


oscillator won't start on external crystal 
oscillator will be at wrong speed code 
wont start at bootloader