Ho risolto.
il problema sta qui pi precisamente con inverse=true:

codice:
/**
	* @hibernate.set lazy="true" inverse="true"  
	* @hibernate.collection-key column="id_madre"
	* @hibernate.collection-one-to-many class="persona.tipo.madre"
	*
	* @return Returns the PersoneFiglie.
*/
1. la relazione tra persona madre e filglie è definita come inverse (inversa di un'altra relazione) il che significa
che le update non hanno effetto. Due possibili soluzioni:
a) la relazione rimane inverse e si aggiunge un altro metodo getPersona mappato dritto (non inverse) se proprio ti serve l'elenco delle figlie come metodo nella classe Persona: a quel punto quando fai l'update dovresti fare setPersona(p) e poi fare l'update su domanda.
b) aggiungere un oggetto PersonaRelazione con madre e figlia come attributi mappati

Ti consiglio la prima...

Ma se vuoi fai come ho fatto io:
codice:
/**
	* @hibernate.set lazy="true" inverse="false" 
	* @hibernate.collection-key column="id_madre"
	* @hibernate.collection-one-to-many class="persona.tipo.madre"
	*
	* @return Returns the PersoneFiglie.
*/