The solution for $(c)$ is perfect up to $\mu^{*}(C_n\setminus E_n) = \mu^{*}(C_n) - \mu^{*}(E_n) \leq \epsilon/2^{n}$, so let's keep going from here.
It is easy to lose track of what we are doing with these kind of problems, so let's not forget that we are trying to approximate the set $E$ from outside, and that right now we only have an approximation for every $n$. The obvious thing to do is then to consider the union of the approximating sets: let $$C_{\epsilon} = \bigcup_{n = 1}^{\infty}C_n.$$
The $\epsilon$ in $C_{\epsilon}$ is there to stress the dependence upon $\epsilon$ of the $C_n$'s and hence of $C$. It is worth noticing that $C_{\epsilon} \in \mathcal{A}_{\sigma}$ being the countable union of countable unions of elements of $\mathcal{A}$.
For the next step to work you might want to state clearly in your proof that we can take $C_n \subset \cup_{i = 1}^nX_i$.
Intuitively, $C_{\epsilon}$ is a decent approximation of $E$. Let's make this precise:
\begin{align}
\mu^*(C_{\epsilon} \cap E^c) = & \mu^*\Big(\bigcup_{n = 1}^{\infty} (C_n \cap E^c)\Big) = \mu^*\Big(\bigcup_{n = 1}^{\infty} (C_n \cap E_n^c)\Big) \\ \le & \sum_{n = 1}^{\infty}\mu^*(C_n \setminus E_n) \le \epsilon.
\end{align}
(good job considering the $2^{-n}$, that really came in handy!)
Let's go back to our intuition: $C_{\epsilon}$ is an $\epsilon$-good approximation of $E$, therefore we would like to send $\epsilon$ to $0$ to get the best possible approximation. Since we want to end up in $\mathcal{A}_{\sigma \delta}$ what we need to do is to "discretize" the sets $C_{\epsilon}$ considering instead the sets $C_{\frac{1}{n}}$. (the notation is unfortunate, these resemble too much the $C_n$ sets, hopefully this won't cause any confusion)
Then clearly $$C := \bigcap_{n = 1}^{\infty}C_{\frac{1}{n}} \in \mathcal{A}_{\sigma \delta}$$ and satisfies $\mu^*(C \setminus E) = 0$, proving the claim.
To show this last equality notice that $$\mu^*(C \setminus E) \le \mu^*(C_{\frac{1}{n}} \setminus E) \le \frac{1}{n} \to 0.$$
Let me know if there is anything that I need to clarify!
Best Answer
Your proof is correct. It just need a small adjustment: to make explicit that the representation $\sum_{n}a_n \chi_{E_n}$ of $\phi$ being used satisfies the condition: for all $n$, $a_n>0$. I have also improved the wording in the end of the proof.
Proof - Let $f\in L^+$ and $\int f < \infty$. Let $\epsilon > 0$, by definition of $\int f$, there exists a simple function $\phi = \sum_{n}a_n \chi_{E_n}$ such that $0\leq \phi \leq f$ and $$\int f - \epsilon < \int \phi$$
We can assume without loss of generality that, for all $n$, $a_n>0$ (just exclude any value of $n$ for which $a_n=0$).
Note, we have a finite family of disjoint measurable sets $\{E_n\}_{n}$. Let $E = \bigcup_{n}E_n$ then $E\in M$. Since $\int \phi \leq \int f < \infty$ and for each $n$, $a_n>0$, we have, for each $n$, $\mu(E_n) < \infty$ and so $\mu(E) < \infty$. Since $0\leq \phi \leq f$, we have that $\int_E \phi \leq \int_E f$ thus $$\int f - \epsilon < \int \phi =\int_{E}\phi \leq \int_{E}f$$