$$ u_t(x,t) = u_{xx}(x,t), 0<x<l, t>0$$ $$ u(0,t) = 20,\quad u_x(l,t) = 0$$ $$ u(x,0) = \psi(x)$$
Here, $u(0,t) = 20$ is causing a problem with the resultant eigenvalue problem. I have tried to evaluate it according to $\lambda = 0, > 0, < 0$ and in each case run into the problem of $X(0)$ being a function of $T$. I am currently stuck with $X(0) = 20/T(t)$, which clearly doesn't work.
What am I not thinking about correctly here? Perhaps there is a trick that I could use to keep $X$ and $T$ separate? I checked to see if another method exists for nonzero constant BCs with little success.
Separation of variables requires homogeneous boundary conditions. This is to ensure that we have a linear space in which to look for a basis of eigenfunctions.
Given nonhomogeneous BCs, one looks for solution in the form $u=v+w$, where $v$ is some function that satisfies the BCs. Ideally, $v$ satisfies the PDE as well; otherwise the equation for $w$ turns into a nonhomogeneous PDE (which is still some progress).
In your case, the constant function $v(x,t)=20$ works. To find $w$, you have a problem with homogeneous boundary conditions.