El problema es que en cada nivel lees siempre $miArray pero eso ya no tiene sentido.
En el momento en que iteras el primer array debes comenzar a leer $valorClave1, después $valorClave2 y así sucesivamente.
Básicamente tu error es siempre leer el primer array de origen pensando en que así lees los demás sub-niveles.
Piensa bien lo que haces y verás.