Tienes un error muy grande de concepto, una cosa son las referencias a los objetos y otra los propios objetos.
Cita: ArrayList<personas> original = new ArrayList<personas>();
ArrayList<personas> copia = new ArrayList<personas>();
A dos referencias les asignas objetos lista distintos y vacíos
Cita: this.original = recibe;
this.copia = recibe;
Aquí no estás rellenando tus dos listas vacías, lo que estás haciendo es que original y copia (referencias) apunten ahora a la lista recibe, al mismo objeto.
Y por eso mismo te sucede lo mismo con el que pasas como parámetro, ya que recibe no es un objeto, es una referencia al objeto lista creado en la clase padre.