As far as I can tell one problem with this proof is that it initially starts with the assumption that x=y then the term (x-y) appears as a factor. From the initial assumption this has a value of zero and so when it is removed the division by zero occurs.

Another way of looking at it is that the third equation (x^2 - y^2 = xy - y^2) is a statement that zero is equal to zero applying the initial assumption that x = y. So if you remove factors of zero from either side then the rest is meaningless. The fact that 1 times zero is equal to 5000 times zero does not mean that 1 equals 5000.