How to fix transform/velocity issue when possessing a moving pawn?

It fixed the issue for my simple test setup. It’s probably also a bit of luck that because the flow must be like Possess → SetMobility(Static) → Movement Comp Tick → SetMobility(Movable) → UpdatePlatform. If the timeline gets updated before the movement comp tick then it would obviously not work anymore. I don’t think the order in which classes tick or timelines get updated is guaranteed (apart from prerequisite actors and tick groups) so this might not even work anymore for my test setup in a packaged build as the order may be switched around. It’s even trickier for a more complex project like yours. In C++ this would be a lot easier to work around as you could just override the method in your own subclass. Not saying there is no workaround when using only Blueprint, it probably just involves a lot more trial and error.
I also only stepped through a small section of the code so I can’t rule out that there are more problems with the based movement when switching pawns. One thing you should try:
Disable collision between the turret and the pawn, set the platform mobility to static immediately after possessing the turret (put the node directly behind the possess node) and just leave it at that, don’t move the platform any further. If the pawn still teleports now when you possess/unpossess there’s an additional problem.