Hi all,
I think I found a solution. I was missing a
void RefreshPhysicalNodes(Bool_t lock = kTRUE)
call. And I was (wrongly) looking only at global coordinates in navigation (which are of course unaffected by local misalignement); checking navigation points in local coordinates gave me the right answer.