For the first part of your question consider the restriction operator $S: C(X) \to C(F)$ given by $S(f) = f|_F$. Observe that $S$ is continuous and linear of norm $1$ (unless $F$ is empty) and that by the hypotheses on $T: C(F)\to C(X)$ we have that $ST = 1_{C(F)}.$ Therefore $T$ must be injective and $P = TS$ satisfies $P^2 = (TS)^2 = T(ST)S= TS = P$, so $P$ is a projection operator whose kernel satisfies $\ker{P} = \ker{TS} = \ker{S} = Z$ by injectivity of $T$ and the definition of $Z$ in your question.
Now define $W = \ker(1_{C(X)}-TS)$, so $W$ is by definition a closed subspace of $C(X)$. Next, $T(C(F)) \subset W$ because $(1-TS)Tf = Tf- T(ST)f = 0$ and $W \subset T(C(F))$ because for $w \in W$ we have $w = TS(w)$. Thus, $T$ is an isomorphism $T: C(F) \to W$.
Endow $W$ and $Z$ with the restriction of the norm of $C(X)$. Then the map $R: W \oplus Z \to C(X)$ given by $R(w,z) = w+z$ is continuous with continuous inverse $f \mapsto (TSf, (1-TS)f)$, so $C(X)$ and $W \oplus Z$ are isomorphic as Banach spaces.
The second part of your question is a bit harder. In fact, there is the theorem due to K. Borsuk from the early thirties which gives the existence of an extension operator quite generally:
Let $F$ be a non-empty closed subset of a compact metric space $K$. Then there is a continuous operator $T: C(F) \to C(K)$ such that $\|T\| = 1$, that $T(1) = 1$ and $(Tg)|_{F} = g$ for all $g \in C(F)$.
This is proved e.g. as Theorem 4.4.4 on page 89 in Albiac–Kalton. The idea of the proof is this: by judiciously choosing a partition of unity of $U = K \smallsetminus F$ we can extend a continuous function on $F$ to a function on all of $K$.
The proof of the general case isn't very difficult but in the special case of a non-empty closed subset $F$ of $[0,1]$ the result is substantially easier because we may exploit the structure of the interval:
Note that $U = [0,1] \smallsetminus F$ can be written as a countable union of pairwise disjoint non-empty open intervals $U = \bigcup_{j \in J} (a_j,b_j)$ with $a_j, b_j \in F \cup \{0,1\}$. On each interval $(a_j,b_j)$, we can simply linearly interpolate $f$ from $f(a_j)$ to $f(b_j)$ or, more formally, for $f\in C(F)$ put $ (Tf)(x) = \begin{cases} f(x) & \text{if } x \in F \\ \frac{1}{(b_j-a_j)}\left(f(a_j)(b_j-x) + (x-a_j)f(b_j)\right), & \text{if }x \in (a_j,b_j) \end{cases} $ where we set $f(0) = 0$ and $f(1) = 0$ in case either of $0,1$ does not lie in $F$ [there's the minor defect that $T(1_{F}) \neq 1_X$ if $\{0,1\} \not\subset F$ but that's easily repaired: pick an arbitrary point $x_0 \in F$ and interpret $f(0)$ and $f(1)$ as $f(x_0)$ if necessary]. Then $Tf(x)$ is a continuous function on $[0,1]$ and $T: C(F) \to C(X)$ is a linear operator of norm $1$ such that $Tf|_{F} = f$ for all $f \in C(F)$.