El problema es que estás guardando "cadena" cada vez. getline irá escribiendo a cada posición, pero de la forma en la que estás asignando, en cada puntero del vector quedará copiado el puntero a la primera posición de "cadena".
Para que funcione, deberías hacer algo como esto luego del getline
Es decir, copiar la cadena explícitamente a la posición correspondiente en
familia.
¡No olvides hacer el delete[] al terminar!
Saludos.