We can fix $y$ and then consider $f(x,y)$ to be strictly a function of $x$ (say $h(x)=f(x,y)$ if you want, which makes sense because $y$ is fixed somewhere). Doing this yields the Taylor expansion seen in equation $(1)$. We would say that, by the usual formula, we have
h(x)=h(x_0)+h'(x_0)(x-x_0)+h''(x_0)(x-x_0)^2+\cdots \tag{0}
Now $h(x_0)=f(x_0,y)$ and h'(x_0)=f_x(x_0,y) and h''(x_0)=f_{xx}(x_0,y) and so forth. Now notice that this works regardless of what we fixed $y$ at to begin with, so it must hold for all available $y$.
We will switch gears now; since the formula holds for all $y$ we no longer need to consider $y$ fixed.
The Taylor expansion in the variable $x$ seen in $(0)$ involves a number of terms like $f_{xx}(x_0,y)$. Now we know that $x_0$ is fixed but $y$ is not, so this is a function of $y$! Say $g(y)=f_{xx}(x_0,y)$. Then we can speak of its Taylor expansion just as well, g(y)=g(y_0)+g'(y)(y-y_0)+g''(y)(y-y_0)+\cdots.
It turns out that $g(y_0)=f_{xx}(x_0,y_0)$ and g'(y_0)=f_{xxy}(x_0,y_0) and g''(y_0)=f_{xxyy}(x_0,y_0) and so on, because taking partial derivatives commutes with "evaluating at $y=y_0$" (or $x=x_0$, as in the last part). This means that differentiation and plugging things in can be done in any order here.
Doing a Taylor series expansion in the variable $y$ for $f_{xx}(x_0,y)$, as seen in $(4)$, can be done with any of the terms in $(1)$, like $f(x_0,y)$ and $f_x(x_0,y)$ seen in $(2)$ and $(3)$.
I have assumed that $f$ is sufficiently nice in this answer.