While trying to clean up Wikipedia's proof sketch for Tennenbaum's theorem (there is no computable non-standard model of Peano Arithmetic), the following strategy occurred to me. Since it seems to be simpler than the ones presented in Kaye's 2006 paper -- in particular it avoids any reference to the overspill principle -- I think I must have overlooked some subtlety. But what?
Select two recursively enumerable but recursively inseparable disjoint subsets $A, B$ of $\mathbb N$. For concreteness, let's suppose $A$ is the indices of Turing machines that halt in an odd number of steps on an empty tape and $B$ is the indices of Turing machines that halt in an even number of steps.
Then there exist primitive recursive functions $f$ and $g$ such that $A$ is the range of $f$ and $B$ is the range of $g$. Moreover, at least with the above choice, we can choose $f$ and $g$ such that PA proves that the ranges of $f$ and $g$ are disjoint.
Now, given a countable nonstandard model $M$ of PA, choose any nonstandard element $c\in M$, and let $$ C = \{ n\in\mathbb N \mid M\vDash {\exists x<c: f(x)=\bar n} \}$$ Then $A\subseteq C \subseteq \mathbb N\setminus B$ because primitive recursive functions give the usual results for standard elements, and the full range of $f$ in $M$ is disjoint from the range of $g$ and so in particular from $B$. Therefore $C$ is not recursive.
However, all of $C$ is encoded by a single element of $M$, namely $a=\prod_{x<c} p_{f(x)}$ where $p_n$ is the $n$th prime. PA proves that this product must exist within $M$ even though it is an "infinite" product when we view it from the outside.
Now, exactly as in Kaye's paper (Threorem 2.8), if addition in $M$ were computable, we could decide $C$ (by dividing $a$ by $p_n$ with remainder in $M$ by brute-force search). But $C$ is not recursive, so $M$'s addition is not computable.
I'm assuming that this doesn't actually work, because Kaye, an expert on the subject, resorts to a more indirect way to argue (top of page 9) that "Tennenbaum-type results can be proved by means other than overspill". But where's the gap?