Non vorrei dire una boiata, ma forse inserendo un #pragma once (se supportato dal compilatore) in ogni file di intestazione si potrebbe risolvere il problema.