L'oscillatore si sceglie impostando correttamente i fuse del micro: l'oscillatore che fornisce il clock a 8 MHz o 1 MHz (8 MHz con divisore HW da 8) non è lo stesso di quello che fornisce il clock a 12 8 kHz. Devi selezionarlo tramite i fuse.
Però da miei test, se non hai un vero programmatore HW, non riesci a caricare lo sketch su un micro che lavora a 128 kHz. Per questo ti ho suggerito di provare mettendo il micro a 1 MHz, caricando lo sketch scritto per lavorare a 128 kHz, e poi impostando i fuse per selezionare l'oscillatore da 128 kHz. Sul come scrivere il firmware, ti ho già risposto: scordati l'uso dell'IDE di Arduino e delle sue librerie, la maggior parte di questa roba non funziona che a 16 MHz o, al massimo, a 1 MHz.
Se comunque è per risparmiare corrente, non ti basterebbe usare la modalità sleep per "addormentare" il micro quando non lavora? Che cosa deve gestire, esattamente? Magari potrebbe bastare anche un micro più piccolo di un 328 impostato a 1 MHz con tensione molto bassa: ad esempio, gli ultimi Attiny revisione "V" o "A" possono operare con tensioni minime di 1,8V.