Tennenbaum's theorem without overspill
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?
Looking at this argument and at Kaye's paper, I think that this argument is correct and is essentially just a different approach to his theorems 2.7 and 2.8. Some of the things that appear to be possibly noncomputable are explained in Kaye's paper.
One issue is that, by using overspill, Kaye is able to avoid all mention of primitive recursive functions. Since these are not in the language of PA, as you know, it requires a substantial amount of work to verify that PA preserves their properties. The proof in the question relies on all this machinery to establish the existence of $a$; the construction of $a$ by overspill only requires the induction scheme that is already in PA.