Thank you for your clarifications, Michael.
I understand your confusion with the documentation. "Entity_Move declarations only act once, allowing to add them incrementally as you move entities step by step" means that each server action in the flow only runs once, allowing you to have multiple in the flow, and to move multiple data at once.
So you should have the 3 actions to prevent getting the foreign key constraint error.
If after deleting all records from the entity "MovedEntity", and having the 3 actions in the flow, you still can't move the data from the PersonAddress, I really don't know what else I can do to help you. I'm sorry.
To test you case, I did the following steps:
1- created my Source_CS module with the data model you gave, and added some data to the entity
2- created my Target_CS module, copied all entities
3- built the OnPublish action like the image above
4- published the Refactor module
5- published a solution with the 2 modules, with full compilation
Did you do something different?