es porque todos tienen "edad" como clave, x eso se queda con el primero y asume a los demas como duplicados.
edito: wow! recien noto que tienes un indice dentro de otro... es una limitacion de esa funcion!
Revisa en las notas con respecto a esa funcion ya lo he sufrido y ahi encontre la solución:
http://www.php.net/manual/es/function.array-unique.php