Setting $f^{-1}(x_0) = f(x)$ makes no sense at all. A function carries some set $X$, its domain, to some other set $Y$. While it is possible for $X$ and $Y$ to overlap, or even be the same, there is no reason they should, and in general you cannot expect them to do so. If $f$ carries $X$ to $Y$, then, should it have an inverse, the inverse function $f^{-1}$ does just the opposite. It carries $Y$ to $X$. For $f^{-1}(x_0)$ to be defined, $x_0$ must be in the domain of $f^{-1}$, that is, in $Y$. And then $f^{-1}(x_0)$ is in $X$. But for $f(x)$ to make sense, $x \in X$, and $f(x) \in Y$.
By setting $f^{-1}(x_0) = f(x)$, you are equating an element of $X$ on the left with an element of $Y$ on the right. Again, in general these two sets cannot be expected to have any points in common. Instead you need to set $$x_0 = f(x)$$ then solve for $x$ to find $x = f^{-1}(x_0)$.
Now an inverse function has the property that for all values $x$ in the domain of $f$,
$$x = f^{-1}\circ f(x) = f^{-1}(f(x))$$ and for all $y$ in the domain of $f^{-1}$, $$y = f\circ f^{-1}(y) = f(f^{-1}(y))$$
If $f$ and $f^{-1}$ are differentiable, the chain rule then tells us that $$1 = \frac {dx}{dx} = {f^{-1}}'(f(x))f'(x)$$
so if $f'(x) \ne 0$, then ${f^{-1}}'(f(x)) = \dfrac 1{f'(x)}$. (A more careful proof can dispense with the assumption that $f^{-1}$ is known to be differentiable before-hand, deriving that as a consequence.) For your $x_0 = f(x)$, this can be rewritten as
$${f^{-1}}'(x_0) = \dfrac 1{f'(f^{-1}(x_0))}$$
Replacing the constant $x_0$ with a variable $y$, and taking the derivative with respect to $y$, we get
$${f^{-1}}''(y) = -\dfrac {f''(f^{-1}(y)){f^{-1}}'(y)}{[f'(f^{-1}(y))]^2} = - \dfrac {f''(f^{-1}(y))}{[f'(f^{-1}(y))]^3}$$
Or switching back to $x$,
$${f^{-1}}''(f(x))= - \dfrac {f''(x)}{[f'(x)]^3}$$