This is not an answer to your question, but rather a response to the premise you wrote, to clear up a misconception: Energy and momentum can commute in a non-constant potential, it just depends what the potential is. You'd have to check it explicitly for a given potential by acting the momentum operator on the potential on a test function.
In general, in any closed system (so no external potential), momentum is conserved, which means we must have
$$[H,p_i]=0$$
Why should they commute? A conserved quantity commutes with $H$ so that its time evolution is unaffected, thus it is conserved:
$$P(t)=e^{-itH} P e^{itH}=P e^{-itH} e^{itH}=P$$
Edit: In the comments it was suggested that the claim above was false. So as an important example, below is a proof of this for the coulomb potential of two charge particles of mass $m$. Note that the conserved quantity is the summed (total) momentum of both particles, $\vec{p}_1+\vec{p}_2$. The individual momenta are not conserved and do not commute with $H$.
$$[H,p]$$
$$=[p_1^2/2m +p_2^2/2m+V(x_1,x_2), p_1 +p_2]$$
The first two terms of the hamiltonian commute with the total momentum so they vanish.
$$=[V(x_1,x_2), p_1 + p_2]$$
$$=[V(x_1,x_2), p_1]+[V(x_1,x_2),p_2]$$
Consider the first commutator, for $p_1$. Use the notation $\partial_{x1}\equiv \frac{\partial}{\partial x_1}$.
$$[V(x_1,x_2), p_1]$$
$$=-i\hbar[V(x_1,x_2), \partial_{x1}]$$
where $V(x_1, x_2)=\frac{-k}{|x_2-x_1|}$
Let's find this commutator. Consider on some test function $\psi(x_1, x_2)$
$$\partial_{x1} (V(x_1, x_2) \psi)=V(x_1, x_2) \partial_{x1}\psi + \partial_{x1}V(x_1, x_2) \psi$$
$$\implies V(x_1, x_2) \partial_{x1}\psi-\partial_{x1} (V(x_1, x_2) \psi)=[V,\partial_{x1}]\psi=-\partial_{x1}V(x_1, x_2) \psi$$
The derivative of the potential is
$$\partial_{x1}V(x_1, x_2)=\frac{k(x_2-x_1)}{|x_2-x_1|^3}$$
Therefore $[V(x_1, x_2),\partial_{x1}]=\frac{k(x_2-x_1)}{|x_2-x_1|^3}$. This gives
$$[V(x_1, x_2),p_1]=-i\hbar\frac{k(x_2-x_1)}{|x_2-x_1|^3}$$
$$[V(x_1, x_2),p_2]=+i\hbar\frac{k(x_2-x_1)}{|x_2-x_1|^3}$$
..where the second commutator came from exchanging $x_1 \leftrightarrow x_2$. These commutators are negatives of each other, so adding them gives
$$[V(x_1, x_2),p_1+p_2]=[V(x_1, x_2),p]=0$$
$$\implies [H,p]=0$$
This is a proof in one spacial dimension. The same proof works for the Coulomb potential in three spacial dimensions, where the generalized result is $[H,p_i]=0$ for all three components of the momentum.