Der ATmega328 ist nicht über den ISP-Programmieranschluss programmierbar, da das Line-Receiver IC (U1a) auch bei gestecktem JP1 nicht in den Tri-State Zustand geht. Meiner Meinung nach ist U1a (Pin12 OE-NICHT) falsch beschaltet. Nach Datenblatt des DS26LS32 (o. AM26LS32), hier heissen die Pins "G" bzw. "G-NICHT", muss G auf GND und G-NICHT auf Vcc liegen, um den Tri-State (high impedance) Zustand anzunehmen. Und nur dann wird der ISP-Anschluss nicht behindert.
Eine entsprechende Schaltungsänderung, Pin12 mit Fädeldrath auf Vcc gelegt, habe ich bei mir vorgenommen und funktioniert einwandfrei.