I really like Vigleik's answer, but I'll throw in yet another way to look at your original problem. P_{x} = (P_{x-1}+P_{x+1})/2 is an example of a (discrete) harmonic function; i.e., a function whose value is the average of the adjacent values. In this case, P_{x} is a harmonic function on a chain graph. For purposes of intuition, we can move from a discrete to a continuous line and think about the criterion for a function of one (real) variable to be harmonic: it is harmonic if and only if its second derivative vanishes; i.e., it's linear. This provides some intuition why your solution just linearly interpolates between 0 and 1.

Your general problem of P_{x,y,p} is no longer harmonic, so it will not have as easy a solution, as you may be discovering. For notational simplicity, I'll write P_{n} for P_{n,y,p} (preferring n as the index of a sequence to x). If you write down your new recurrence, you will get equations

P_{n} = (1-p)P_{n-1}+pP_{n+1}

subject to P_{0} = 0, P_{y} = 1. We can work with this, or we can use a trick. Let k = (1-p)/p (so p = 1/(1+k)). Then you can verify that

P_{n} = kP_{n-1} + 1

satisfies the original equation (with the additional freedom to scale all P_{n} by a constant factor - we've broken the homogeneity of our original recurrence). [It actually takes some doing to verify this: consider using this new recurrence to write down P_{n}-P_{n+1}. When you solve that out for P_{n}, you retrieve the original recurrence.]

This is much easier to handle, with solution

$P_n = \frac{k^n-1}{k-1}$.

This gives P_{0} = 0 as desired, but you'll need to scale down all solutions so that P_{y} = 1.