The result of a transfer is not unique in general, the transfer method merely computes one of the possible solutions, but you can backtrack with back
to cycle through the others. In your particular example, you find your desired outcome after backtracking 53 times (at least with Isabelle2013-1-RC3). The order of the solutions is determined by the order of the [transfer_rule]
declarations, and therefore the number of backtracking is likely to change from one release to the next.
Unfortunately, transfer
provides hardly any control to where it takes the goal if there are many solutions.