Define $V_{a,i}=\{x\in V \mid \exists p \text{ such that } (\phi_i-a_i)^px =0 \}$ Because the $\phi_i$ commute, we have $\phi_j(V_{a,i})\subset V_{a,i}$ for every $i$ and $j$. We can construct a sequences $(a_i)$ that have non-trivial $V_{(a_i)}$ as follows.
Take some eigenvalue of $\phi_1$. Let this be $a_1$. Take an eigenvalue of $\phi_2$ restricted to $V_{a_1,1}$ and let this be $a_2$. Then $V_{a_1,1}\cap V_{a_2,2}\neq \emptyset$ Take an eigenvalue of $\phi_3$ restricted to $V_{a_1,1}\cap V_{a_2,2}$, and let this be $a_3$. Continuing the process, after stage $k$, we have a nontrivial vector space consisting of only pseudo-eigenvectors for ever $\phi_i$ with $i\leq k$.
Because at every point in the process, the remaining vector space breaks up into a direct sum of the (pseudo)-eigenspaces, we can exhaust $V$ by taking different choices for the $a_i$.
Phrased slightly differently, we have direct sum decompositions $V=\bigoplus_{\lambda} V_{\phi_i,\lambda}$ where $\lambda$ runs over the eigenvalues of $\phi_i$. Intersecting these decompositions gives you the decomposition you want.