Voy a darte una respuesta rápida primero (así sales del paso) y luego de que lea con tiempo los fuentes veo si te puedo mandar alguna sugerencia.
1) PHP4 y PHP5, soy *muy* diferentes en lo que concierne a Orientación a Objetos. PHP4 todo se pasa siempre por "valor", mientras que con objetos desde PHP5 son todos por "referencia".
2) Si mal no recuerdo (me voy a fijar en el manual) anidar invocaciones del estilo $a->metodoA()->metodoB() se soporta en PHP5 y no en PHP4.
En resumen, creo que el problema está ahí. Los invito a pasar por el sitio de la documentación oficial donde se habla de las diferencias entre versiones 4 y 5.