We had a similar issue in r18 when we migrate a project from v4 to v5 with everything designed in context.
The migrated parts were OK and everything was nice in v5. The problem appeared when we imported CATIA files in VPM via stp import procedure...there were parts which were coming in the correct position and some others which were not.
To complete the picture, for some parts we had the same issue like you have. Frankly speaking, I couldn't understand very clear why fixing some parts we had that problem, but I suppose its due to how the parts were initially created in v4 (did you checked the axis systems?).
I solved the problem creating a macro who took the parts position in assy before importing them in VPM, import in VPM (no matter what was the position) and finally running another macro which was putting the correct position and fixing the parts without any problem.
And by the way, I've done a macro in an earlier CATIA release which was supposing to fix the parts in assy but the syntax was wrong, meaning it was done exactly what jackk described, the script was fixing the parts but without locking sign on it. This means in fact nothing, a simple update was moving the parts.
Regards
Fernando