Pues parece sencillo de narices. Lo que pasa que yo no escribo código porque me lleva mucho tiempo y con escribir algún comentario creo que ya hago bastante
. Yo eso lo plantearía usando un bucle para las direcciones y las almacenaría en objetos o en un array de estructuras. El total de los datos en una estructura o en un objeto y luego a la BD con dos tablas una para los datos principales y otra para las direcciones.