There is a classical theorem by Dini that says this is possible when $f_{i}$ are monotonically increasing.
We now assume $f_{n}$ converges to $f$ pointwise and $f,f_{n}$ are all continuous but the limit is not uniform. Thus there is some $\epsilon$ such that $\forall N$ there is some $n\ge N$ such that $$|f_{n}(x)-f(x)|> \epsilon$$ for some $x\in [0,1]$.
Now since $f_{i},f$ are uniformly continuous on $[0,1]$, for $\epsilon_{1}=\frac{\epsilon}{3}$ we have a list of $\delta_{i}$s such that $0< \delta_{i}\le 1$ and $|f_{i}(x)-f_{i}(y)|\le \epsilon_{1}$ for $|x-y|\le \delta_{i}$. Consider the interval $U_{i}=[0,\delta_{i}]$, I claim $\lim_{i\rightarrow \infty} \bigcap U_{i}\not=\emptyset$. Suppose $\cap_{i=N} U_{i}=\emptyset$, then $f_{i}$ would have nontrivial variation $$\lim_{x \rightarrow y} |f(x)-f(y)|=0$$ a fact contradicting they are being continuous. Thus let $U=[0,\delta_{A}]$ be the intersection, and let $\delta_{B}$ be the corresponding value for $f$. We choose $\delta=\min[\delta_{A},\delta_{B}]$.
We now assume the counterexample in the beginning. For fixed $y$ such that $|x-y|\le \delta$ we can choose $N$ large enough such that $$|f(y)-f_{n}(y)|\le \epsilon/3$$ for any $n\ge N$. If it turns out $N$ is greater than the initial $n$ we chose, we may switch to a different $n$ guaranteed to exist by the hypothesis.
We have the estimate that $$|f_{n}(x)-f(x)|\le |f_{n}(x)-f_{n}(y)|+|f_{n}(y)-f(y)|+|f_{n}(y)-f_{n}(x)\le \epsilon$$ which contradicts the hypothesis we had earlier. So the convergence is uniform afterall.