By adding the weight $W$ you push water through the membranes (but not the molecules, as there is a membrane). This creates two different compartments with different densities which exert different osmotic pressures.
Let's call the two different number densities $c_-$ and $c-+$ defined as
$$c_-=n_0 A h / A(h+x) = n_0 h/(h+x)$$
and
$$c_+=n_0 A h / A(h-x) = n_0 h/(h-x)$$
with, followinf the definition, $c_+>c_-$. As you can see to compute them I found the total number by multiplying times $Ah$ and then divided by the "new" volume.
This new concentrations exert the osmotic pressures
$$\Pi_\pm=\gamma c_\pm$$
where $\gamma$ is a constant.
By adding the weight $W$ you push water through the membranes (but not the molecules, as there is a membrane). This creates two different compartments with different densities which exert different osmotic pressures.
Definitions
Let's call the two different number densities $c_-$ and $c-+$ defined as
$$c_-=n_0 A h / A(h+x) = n_0 h/(h+x)$$
and
$$c_+=n_0 A h / A(h-x) = n_0 h/(h-x)$$
As you can see to compute them I found the total number by multiplying times $Ah$ and then divided by the "new" volume.
This new concentrations exert the osmotic pressures
$$\Pi_\pm=\gamma c_\pm$$
where $\gamma$ is a constant [if you don't know about this, check your book, it should be there..!].
Solving the problem
Before adding the weight, everything is balanced. The pressure at each position is given by $p_t$ (the pressure due to the top piston) and to $\rho g z$ (with $z=0$ on the top and $z=h on the bottom) i.e. due to the weight of the mass of water/solute column that sits on top of a given position.
When you add a weight $W$ you add an extra pressure $Wg/A$, where $g$ is the ecceleration of gravity. As you said the addition of the weight does not create an extra weight of the solute. It however creates an imbalance in the local density, so that there now are two different concentrations of solute at the two sides of the membrane, which leads to a pressure difference across the membrane given by
$$\Delta p=-\gamma(c_+-c_-)$$
where the minus sign is due to the fact that the concentration on the bottom is lower than on the top so the pressure must decrease ($\Delta p<0$).
Let's now look at the bottom of the container. Before adding the weight, the total pressure on the piston $p_i$ was given by the sum of all the pressures on the top, i.e. the weight of the water/solute mix and whatever unknown $p_t$ pressure is exerted by the top piston. We can write
$$p_i=p_t+\rho g h$$
where $\rho$ is the average density of the water solute mix.
This internal pressures balances the outside pressure pushing "from outside" on the bottom piston which we call $p_o$ so that
$$p_i=p_t+\rho g h =p_o$$
After you add the weight and a new equilibrium is reached, there is a new pressure pushing on the bottom, given by $Wg/A$ and also a new pressure given by the imbalance of the solute on the two sides of the membrane given as said before by $\Delta p=\gamma(c_+-c_-)$ so that the internal pressure now reads
$$p_i=p_t+\rho g h+Wg/A+\Delta p$$
where we used the fact that $p_t$ did not change (whatever pressure was exerted by the top piston before is still there, increased by $Wg/A$) and that, as you said, the total weight of the water/solute mix did not change as the total number of molecules is constant so $\rho g h$ stays there. At the same time, again, we can say that the outside pressure on the bottom must still be the same (nothing changed on the bottom outside) and that pressure must still balance the new $p_i$ meaning
$$p_o=p_t+\rho g h+Wg/A+\Delta p$$
but because before we found that $p_o$ was equal to $p_t+\rho g h$ and non of these terms changed, we can remove both $p_o$ and $p_t+\rho g h$$ from the equation so that
$$0 = Wg/A+\Delta p$$ indicating that whatever new pressure has been exerted by the weight $W$ this has to be balanced by the osmotic pressure imbalance due to the membrane!
This leads to:
$$Wg/A = \gamma (c_+-c_-) $$
and using the definitions of $c_{\pm}$
$$Wg/A = \gamma (c_+-c_-)= \gamma n_0 \left ( {h\over h-x}-{h\over h+x}\right)$$
which leads to
$$Wg/A= \gamma n_0 \left ( {2hx \over h^2 -x^2} \right ) $$
from which you can extract the $x$ corresponding to a given $W$ (you actually get two solutions and discard the negative one).
We just need to fix the value of $\gamma$ which depends on the model for osmotic pressure that you choose, but it is usually set $\gamma=k_B T$ where $k_B$ is Boltzmann's constant and $T$ is the temperature.
I hope the computations are right, but the concept remains: the pressure given by the weight $W$ is compensated by the change of osmotic pressures across the two sides of the membrane.