Exercise 6.5 in Humphrey's Book on Lie Algebras

The problem with your approach is that $W$ may have more than one $K$-complement (think of the case $K=0$) and not every complement may be $Z$-invariant. So it's better to do it the other way round: As you said, there is a basis of $V$ such that each element of this basis is an eigenvector for each $\rho(z)$. Let $v$ be such an eigenvector, so that for each $z\in Z$ there is $\alpha(z)\in \mathbb{F}$ such that $z.v= \alpha(z)v$. The map $\alpha\colon Z\to \mathbb{F}$ is linear. Set $$ V_{\alpha} = \{v\in V \mid z.v = \alpha(z)v \quad\text{for all } z\in Z \}.$$ Since $\rho(Z)$ is simultaneously diagonizable, we have that $$ V= \bigoplus_{\alpha} V_{\alpha}, $$ where $\alpha$ runs over linear maps $\alpha\colon Z\to \mathbb{F}$. (Of course, $V_{\alpha}=0$ for all but finitely many $\alpha$'s.)
The $V_{\alpha}$'s are $L$-invariant: for $v\in V_{\alpha}$, $z\in Z$ and $x\in L$ we have $$ z.(x.v) = x.(z.v)+[z,x].v = x.(z.v) = x.(\alpha(z)v)=\alpha(z)(x.v), $$ so $x.v\in V_{\alpha}$.
Finally, each $V_{\alpha}$ decomposes as a direct sum of irreducible $K$-submodules. Submodules of $V_{\alpha}$ are $Z$-invariant, since $Z$ acts as scalars on $V_{\alpha}$. This gives the desired decomposition of $V$ into irreducible $L$-submodules.