I tend to look at these situations from the standpoint of "How would the ordinary traveler, not a FTer, react?" In this case, I completely agree with G_H_F. This was 100% the airline's fault, and it should not be the OP's responsibility to make sure that the passenger's flight would continue as booked. I would think an appropriate response would be a refund of the cost of the calls and 5,000 miles for pain and suffering.
I also think the OP did the right thing by calling from the ship. Flights are full these days, particularly flights that pick up from cruise destinations. I have no doubt that if the OP had waited to get to the airport and found out that all the flights were full, there would be a long line of FTers waiting around to say, "Why didn't you call them as soon as you knew there was a problem?"
Mike