If my understanding is correct, the only way to update the matchData property of a GKTurnBasedMatch mid-turn is [_currentMatch endTurnWithNextParticipant:_currentParticipant matchData:matchData completionHandler:nil].
This works well if the Game Center player only has the game installed on one device because the notification is delivered to the device as a message to the app. Thus, the notification can be hidden while the user is currently playing his turn. However, if the user has the game installed on multiple devices, the other devices will get a "Your Turn" push notification. This is confusing to the user, especially I update the matchData multiple times.
By the way, I understand that I may not be using the endTurnWithNextParticipant:matchData:completionHandler: function as it was intended (because I am not, in fact, ending the match... but merely updating the matchData). However, there seems to be no alternative to update the match's state mid-turn.
Mid-turn saving has been added in iOS 6 with:
-[GKTurnBasedMatch saveCurrentTurnWithMatchData:completionHandler:]
Source: GKTurnBasedMatch Class Reference