Can you see how to define $s_n$ if you already know it splits? (Hint: use that $d_{n+1}$ maps $D_{n+1}$ isomorphically to $B_n$.)
Now, suppose such $s_n$ exists. We want to find $D_*, H_*, B_*$.
Define $f_n,g_n:C_n\to C_n$ as:
$$f_n = s_{n-1}d_n, g_n=d_{n+1}s_n$$
We easily see that $f_n^2=f_n$ and $g_n^2=g_n$. We also see that $f_ng_n=0$. We also have:
$$d_nf_n = d_n, d_ng_n=0$$
Define $h_n=(1-g_n)f_n$. Then we can show that $$h_n^2=h_n\\
h_ng_n = g_nh_n=0\\
d_nh_n = d_n$$
Define $k_n=1-h_n-g_n$. Show that:
$$k_n^2=k_n\\
k_nh_n=h_nk_n=k_ng_n=g_nk_n=0\\d_nk_n=0$$
All of these are pretty direct proofs.
Finally, show this means that $$C_n\cong g_n(C_n) \oplus h_n(C_n) \oplus k_n(C_n)$$
Map these to the appropriate sets: $B_n=g_n(C_n)$, $D_n=h_n(C_n)$ and $H_n=k_n(C_n)$.
It's pretty easy to show that $d_nk_n=d_ng_n=0$, so $d_n$ is zero on $H_n$ and $B_n$.
Finally, you have to show that $d_{n+1}$ acts as an isomorphism from $D_{n+1}$ to $B_n$.
Essentially, the image of $d_{n+1}$ is contained in $B_n$ because $d_{n+1} = d_{n+1}s_{n}d_{n+1}=g_nd_{n+1}$. $d_{n+1}$ is onto from $D_{n+1}$ to $B_n$ because $$d_{n+1}h_{n+1}s_n = g_n$$
Proving that it is $1-1$ is trickier. I'm not sure about that step.