For simplicity, we will write f2(x)=f(f(x)), f3(x)=f(f(f(x))), etc.
First we show that f must be injective. Suppose f(z1)=f(z2). Replacing z by z1 or by z2 in (1) leads to the same LHS expressions, hence the two RHS expressions must be equal as well, i.e. z1+f(y)+f2(x)=z2+f(y)+f2(x) which implies z1=z2.
We now make the RHS of (1) equal to z+f2(y)+f2(x) in two different ways in order to benefit from the injectivity of f. Replacing y by f(y) gives f(x+f2(y)+f2(z))=z+f2(y)+f2(x). Replacing x by y and y by f(x) gives f(y+f2(x)+f2(z))=z+f2(x)+f2(y). Because the RHS is the same in both expressions, and f is injective, it follows that
x+f2(y)+f2(z)=y+f2(x)+f2(z),
i.e. f2(x)−x=f2(z)−z for all positive x,z.
This means that f2(x)−x=c is a constant that does not depend on x. Setting t=1+f(1)+f2(1), equation (1) with x=y=z=1 implies f(t)=t, hence f2(t)=t and f2(t)−t=0. Therefore c=0 and we have shown
f2(x)=xfor all x>0.(23)
Pick any d>0 and put x=d, y=f(d) and z=d in (1), then use (23) to obtain f(3d)=3d. This means that
f(x)=xfor all x>0.(24)
This function clearly satisfies (1).