Ich würde mich auch für den Test über ein funktionierendes hex Program für den Atmega48 oder 88 (sind ja fast gleich) freuen, dann kann ich die Hardware als Ursache vielleicht eliminieren
Du kannst die Hardware viel besser überprüfen, indem du direkt am Chip TX und RX verbindest (*). Im Terminalprogramm musst du dann ein Echo bekommen. Stell nur sicher, dass das kein lokales Echo ist.

(*) Wenn DIP, Chip dafür einfach aus der Fassung nehmen. Ansonsten den Chip für den Test im Reset halten.

SPIEN programmed
CKSEL3 programmed
das ergibt dann:
efuse 01
lfuse DF
hfuse F7
Die HEX-Werte stimmen nicht mit deiner Beschreibung überein, also checke das nochmal.
EDIT: Du hast lfuse und hfuse vertauscht.