Why won't a ferry VIP mission complete?
Solution 1:
You can always complete a contract using the debug menu. Press alt-F12
to open it, then go to the Contracts tab and click the "complete" button. You still get all the rewards and everything just as if you had completed it the normal way (which in this case you have anyway, you're just working around the bug).
Solution 2:
I only have a partial answer, sadly. I don't know how to fix your bug. But as for why the mission did not complete upon returning home, its not obvious at first but the wording of the contract often specifies how you're supposed to return home. If the wording of the tourist's itinerary specifically says "land on Kerbin", then you must finish the journey on land. If it ends with "splash down on Kerbin", then you must finish the journey in the water. I've had to get in the habit of saving some time before reentry and adjusting my incoming trajectory several times to get the "correct" ending to the mission.