If $C$ is the Cantor set, then $C+C=[0,2]$.
To carry out (b), note that if $\ell\le n_k$, then $x_{n_k}\in C_\ell$. Thus, for each $\ell$ there is an $m(\ell)$ such that $x_{n_k}\in C_\ell$ whenever $k\ge m(\ell)$. Let $\ell$ be arbitrary. Clearly
$$x=\lim_{k\ge m(\ell)}x_{n_k}\;,$$
and $C_\ell$ is closed, so $x\in C_\ell$. Thus, $x\in\bigcap_\ell C_\ell=C$.
(You might be interested in comparing your argument with the first proof here; they’re basically the same idea, just expressed a bit differently.)
It is not clear from your description of $C_n$ but I suppose that it is the $n$'th level of the Cantor set (i.e. with omission of the middle $1/3^n$ sets). Now $C\subset C_n$ for all $n$ and if $x_n\in C_n$ there is $y\in C$ with $|x_n-y|< 3^{-n}$.
Given the subsequence $x_{n_k}\in C_{n_k}$ that you have extracted, $\epsilon_k =|x_{n_k}-x|$ goes to zero as $k\rightarrow \infty$. But then for every $k$, the interval $(x-\epsilon_k-3^{-n_k},x+\epsilon_k+3^{-n_k})$ intersects $C$ non-trivially. As $C$ is closed we must have $x\in C$. Doing the same for $y$ you may conclude in the way you have already sketched.