We can prove lower and upper semicontinuity separately.
We know that supremum of any family of continuous functions is lower semicontinuous. In fact supremum of any family of lower semicontinuous functions is lower semicontinuous. See, for example, these posts: To show that the supremum of any collection of lower semicontinuous functions is lower semicontinuous or Show that the supremum of a collection of lower semicontinuous function is lower semicontinuous.
So it remains to show that $g(x)=\sup\limits_{f\in S} f(x)$ is upper semicontinuous. I.e., we want to show that for any $M$ the set
$$g^{-1}(-\infty,M)=\{x\in X; g(x)<M\}$$
is open.
So let $x_0$ be a point such that $g(x_0)<M$. Let us choose $\varepsilon=\frac{M-g(x_0)}2$. From equicontinuity we get that there is a neighborhood $U$ of $x_0$ such that for $x\in U$ and for any $f\in S$ we have $|f(x)-f(x_0)|<\varepsilon$.
Then for every $f\in S$ and $x\in U$ we get
$$f(x)=f(x_0)+(f(x)-f(x_0)) \le f(x_0) + |f(x)-f(x_0)| \le g(x_0)+\varepsilon = \frac{M+g(x_0)}2$$
which implies
$$g(x) = \sup_{s\in S} f(x) \le \frac{M+g(x_0)}2 < M.$$
We have shown that any point $x_0\in M$ has a neighborhood $U$ such that $x_0\in U\subseteq g^{-1}(-\infty,M)$, which means that the set $g^{-1}(-\infty,M)$ is open.