I assume that the function $f$ maps positive real numbers to positive real numbers.
Step 1: We show that $f(y) \leq 1$ for any $y$.
(This has been worked out in the question. I give proof for completeness.)
Suppose there is $y$ such that $f(y) > 1$. Then putting $x = \frac y {f(y) - 1}$ in the original equation gives $f(y) = 1$, contradiction.
As a corollary, the function $f$ is non-increasing: for any $y < z$, putting $x = z - y$ in the original equation gives $f(y) \geq f(z)$.
Step 2: If there exists $a$ such that $f(a) = 1$, then $f$ is constantly equal to $1$.
Putting $y = a$ in the original equation gives $f(x + a) = f(x)$. Thus by induction, we get $f(ka) = 1$ for any $k \in \Bbb Z_{> 0}$.
For any $x$, we may choose sufficiently large $k$ such that $x < ka$. Since $f$ is non-increasing, this leads to $f(x) \geq 1$ and hence $f(x) = 1$.
Step 3: The remaining case.
From now on, we suppose that $f(x) < 1$ for all $x$. The same argument as above shows that $f$ is strictly decreasing, and in particular is injective.
We replace $x, y$ in the original equation with $x + y - xf(y), xf(y)$ (note that these are positive real numbers). This gives:
$$f(xf(y))f((x + y - xf(y))f(xf(y))) = f(x + y).$$ Together with the original equation, we get $f((x + y - xf(y))f(xf(y))) = f(y)$. By injectivity of $f$, this implies $$(x + y - xf(y))f(xf(y)) = y.$$
We now set $x = \frac z{f(y)}$ in the above equation, which becomes
$$\left(\frac z{f(y)} + y - z\right)f(z) = y.$$ After algebraic transformation, we get
$$\frac 1 y \left(\frac 1{f(y)} - 1\right) = \frac 1 z \left(\frac 1{f(z)} - 1\right).$$ This being valid for all $y, z$, we see that $\frac 1 y \left(\frac 1{f(y)} - 1\right)$ is a constant, independent of the value of $y$.
If we denote this constant by $c$, then we get $f(y) = \frac 1{cy + 1}$. It is easy to verify that this is a possible solution to the original equation.
Thus either $f(y) = 1$ for all $y$, or there exists a constant $c$ such that $f(y) = \frac 1{cy + 1}$ for all $y$.