Recuerda lo que te he dicho, no vale cualquier transistor, no puedes poner un bc847 por ejemplo tienes que buscarte uno de conmutación rápida.
luego la programación es una chorradita, si solo va a cargar el programa por icsp puedes hacerlo con delay para que sea mas fácil aun, ya que ese protocolo tienes que mandar un dato, esperar mandar otro, etc. Y el uso de delay no va a afectar a la temporizacion del programa, ojo, esto solo si tu aparato va a servir de programador, si tiene que hacer mas cosas no uses los delay.los ICSP pueden variar un poco entre familias.
Un saludo