Simultaneous eigenstates of Hamiltonian and momentum operator Given the potential barrier,
\begin{align}
V(x, y) = \left\{ \begin{array}{cc} 
                V_{0} & \hspace{5mm} \text{if $0 \leq x \leq D$} \\
                0 & \hspace{5mm} \text{otherwise}
                \end{array} \right.
\end{align}
the Hamiltonian of the system is
$$\hat H = -\frac{\hbar^{2}}{2m}\nabla^{2}+V$$
Hence for $x<0$, the time-independent wavefunction is:
$$\Psi(x) = A\,exp(ikx)+B\, exp(-ikx)$$
This is an eigenvector of $\hat H$ with the first term representing the incident wave while the second term represents the reflected wave.
Now for this region $[\hat H, \hat p]=0$, so they should have common non-degenerate eigenvectors.
But the above wavefunction is not an eigenvector of $\hat p$. What am I thinking wrong here?
 A: In your example the difficulty is that you're taking linear combination of eigenstates of $p$ but with different eigenvalues, so the resulting combination is no longer an eigenstate of $p$, even if the pieces are separately eigenstates.  
An alternate example would be the simple case $[\hat H,\hat L^2]=0$ and a hydrogen atom state with $n=2$ so that $\ell=0,1$ can occur.  Then
$\{\vert n\ell m\rangle\}$ are simultaneous eigenvectors of $\hat H$ and $\hat L^2$ but a combination of these containing different $\ell$s will not be a simultaneous eigenstate of both since different $\ell$ states have different eigenvalues of $\hat L^2$.
A: If the commutator $[H,p] = 0$, it means that there exists a system of eigenvectors which are common to both operators, and that system of eigenvectors spans the Hilbert space of both the operators.
Here the system of simultaneous eigenvectors of $H$ and $p$ are $\{e^{ikx}\}$ for all $k \in (-\infty, \infty)$. We call this continuous eigenspectrum. Now if you look at your solution wavefunction, you will see that the solution is a linear superposition of two eigenvectors. This superposition state may not be an eigenvector for the momentum space. 
A: $\def\hp{{\hat p}} \def\hH{{\hat H}}$ 
IMO there is a basic misunderstanding in your arguments, about what
operators and eigenfunctions do mean.
You write

Hence for $x<0$, the time-independent wavefunction is:
  $\Psi(x)=A\,\exp(ikx)+B\,\exp(-ikx)$
This is an eigenvector of $\hat H$

No, this is at least an improper way of saying. It's true that Schr.
eqn for stationary states requires a solution of that form for $x<0$.
But you can't call it an eigenvector. This name is properly used
only for a function obeying Schr. eqn on the whole real line.
Analogously, you're not allowed to say

for this region $[\hH,\hp]=0$

Operators are defined over a space of functions and no significant
conclusion can be drawn from a relationship only holding over a subset
of functions domain.

so they should have common non-degenerate eigenvectors

This conclusion would be right if your operators did really commute,
all over Hilbert space, not on functions restricted to a subset of
real line.
Note that if $\hH$ and $\hp$ did commute they would have a complete system of common eigenfunctions. This happens for a free particle: here eigenfunctions of $\hp$ are $\exp(ikx)$ for $k\in\Bbb R$. This is a complete set and all are also eigenfunctions of $\hH$ although degenerate on $k$ sign.
A: The wave-function you have written down is the solution to the "free" wave equation, this is when $V=cst$. The correct wave-function is somewhat more complicated to compute and requires an analysis of the boundary conditions at $x=0,D$
Another way to see why your Hamiltonian does not commute with the momentum operator is that the potential $V$ and thus the Hamiltonian you have is not translation invariant, there are three distinct regions:
$$
1.\quad x<0 \\
2.\quad 0<=x<=D \\
3.\quad D<x
$$
and the potential is 
$$
V = \Theta(x)-\Theta(x-D)
$$
where $\Theta$ is the Heaviside step function.
