Bueno, ya he dado con el problema...
Al final no estaba en los ficheros .h, sino en geomnode.cpp.
Lo explico por si a alguien más le pasa. Esta es mi estructura de ficheros:
Código C++:
Ver originalrcengine.h
rceconsts.h
gui.h
window.h
...
renderer.h
graph.h
node.h
transformnode.h
geomnode.h
...
Pues resulta que tanto en node.cpp como en transformnode.cpp tenia un
pero en geomnode.cpp tenia
Y como la clase node ya se habia incluido antes y uso Include Guards, para geomnode.cpp no se declaraba en ninguna parte.
Fallo tonto.
Aún así, muchas gracias a todos!!