Los errores, en general, tienen que ver con las referencias.
El más crítico es no haber referenciado un par de métodos en ListNode
 Código PHP:
    function setPrevious($node){ 
   $this->previousNode = &$node;
} 
    
  Debería ser así
 Código PHP:
    function setPrevious(&$node){// Aquí está la diferencia. 
   $this->previousNode = &$node;
} 
    
  Del mismo modo con setPrevious(). 
También en la clase LinkedList se referencias objetos que no lo necesitan. No debes referenciar objetos al pasarlos como parámetros en funciones o métodos.
Por ejemplo:
 Código PHP:
    $newNode = $this->getNewNode($object);
//...
$this->head->setNext(&$newNode); 
    
  Provocará un Warning relacionado con "Call-time pass-by-reference". 
La manera de hacer esto es
 Código PHP:
    $newNode = &$this->getNewNode($object);// Aquí lo referencias
//...
$this->head->setNext($newNode);// Aquí ya no. $newNode ya es una referencia. 
    
  Luego tienes que asegurarte que getNewNode() reciba ese parámetro por referencia, y que además devuelva una referencia.
Tú tienes:
 Código PHP:
    function getNewNode(&$object){// Aquí te estás asegurando de referenciar lo que recibes, peor no lo que devuelves.
return new ListNode(&$object);// $object ya es una referencia, no debes referenciarlo aquí. Producirá Warning
} 
    
  Debería ser algo así:
 Código PHP:
    function &getNewNode(&$object){// Ahora también referencias lo que devuelves.
$new = &new ListNode($object);// Referencias el objeto nuevo, peor no el parámetro que envías (que ya era una referencia).
return $new;
} 
    
  Hice los cambios necesarios y al menos el ejemplo funciona bien. Por favor, verifica que todo esté correcto. 
http://nuestrophp.com/Linked_List.zip 
Los cambios que hice son los mismos que te expliqué más arriba, pero en todas las líneas en donde ocurre. 
Saludos