Credo che si possa risolvere con 4 cicli annidati (fa schifo, lo so), ma almeno usi la tua matrice di partenza senza doverla prima spezzettare (a meno che non ci sia una ragione per spezzettarla comunque, oppure non ti arrivi già spezzettata):

codice:
char[][] a = new char[][]{
            {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
            {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
            {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
            {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
            {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
            {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
            {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'},
            {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'},
            {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'}
        };

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3 ; j++) {
                for (int k=0; k < 3; k++) {
                    for (int h=0; h < 3; h++) {
                        System.out.print(a[i*3+k][j*3+h]+" ");
                    }
                    System.out.println();
                }
                System.out.println();
            }
        }
dovrebbe uscirti
codice:
a a a 
a a a 
a a a 

b b b 
b b b 
b b b 

c c c 
c c c 
c c c 

d d d 
d d d 
d d d 

e e e 
e e e 
e e e 

f f f 
f f f 
f f f 

g g g 
g g g 
g g g 

h h h 
h h h 
h h h 

i i i 
i i i 
i i i