I think your argument works, the only thing that isn't completely justified is why you can conclude that since $\hat{f}_n$ converges uniformly to $f$, so does $f_n$. And where do you use that there are only a finite number of points of discontinuity (the example below shows that this assumption is necessary). You can complete the argument as follows; Given $\epsilon>0$ there exists $\hat{N}$ and $\delta>0$ such that
$$ n>\hat{N} \ \Rightarrow \ \forall x \ : \ |\hat{f}_n(x)-f(x)|<\epsilon$$
Label the points of discontinuity $\{y_1,\ldots,y_k\}$. By pointwise convergence we know that for each point of discontinuity $y_j$, there exists and $N_j$ such that
$$ n>N_j \ \Rightarrow \ |f_n(x)-\hat{f}_n(x)|<\epsilon$$
But now taking $N=\max(\hat{N},N_1,\ldots,N_k)$ should give
$$ n>N \ \Rightarrow \ |f_n(x)-f(x)|<2\epsilon$$
EDIT:The following answers a misunderstood version of the question, but since reference to the example is made above, I will leave it up. Missed the assumption that points of discontinuity are assumed independent of $n$ and finite in number.
I am not convinced that this is necessarily true. How about the sequence of functions
$$ f_n(x) = \begin{cases} 0 & \text{ if } x\in ]-\infty,-1/n[\cup [0;\infty[\\
1/2+1/n & \text{ if }x\in [-1/n;0[ \\
\end{cases}$$
seems to me like this sequence of functions will converge pointwise to $0$ and be stictly decreasing, but it is clearly not uniformly convergent, since
$$ \forall n : \ \max(\{|f_n(-\delta) - f_n(0)| \ \big| \ \delta \in [-1;0]\}) >1/2$$
First, I would like to point out that the equicontinuity is crucial in this fact. Indeed, we have the following theorem:
Theorem Let $S$ be a compact set. Let $f_n\colon S\to \Bbb R$ be a sequence of continuous functions converging pointwise to $f\colon S\to \Bbb R$ which is also continuous. Then $f_n\to f$ uniformly if and only if $\mathcal F:=\{f_n:n\in\Bbb N\}$ is (uniformly) equicontinuous.
To find a problem you have to be more specific in the proof. It's important what do you fix first and which value depends on which other value.
Nevertheless, the problem is that you implicitly assumed equicontinuity. To show this let's be more precise in your proof. First we'll take $\varepsilon$, we'll find sets $S_i$ and there'll be no problem with $\max$ as $\delta\to 0$ (as you suggested) since these sets will be fixed.
Proof
Assume the family $\mathcal F$ is equicontinuous (then of course $\mathcal F\cup\{f\}$ also is).
Take any $\varepsilon>0$. We can cover the domain with a finite balls $S_i=B(x_i,r_i)$, $1\leq i\leq k$ such that if $x,y\in S_i$ and $n\in\Bbb N$ then $|f_n(x)-f_n(y)|<\varepsilon$ and $|f(x)-f(y)|<\varepsilon$. Then $(A),(B)\leq \varepsilon$, where $(A)$ and $(B)$ are defined in the question.
For any $i$ we have $f_n(x_i)\to f(x_i)$ (since $f_n\to f$ pointwise). Therefore there exist $N_i\in\Bbb N$ such that $|f_n(x_i)-f(x_i)|<\varepsilon$ for $n\geq N_i$. Taking $N:=\max\{N_1,N_2,\ldots,N_k\}$ we get $|f_n(x_i)-f(x_i)|<\varepsilon$ for $n\geq N$.
Taking everything into account we have
$$\sup_{x \in S} |f_n(x) - f(x)| \leq \varepsilon+\varepsilon+\varepsilon=3\varepsilon\text{ for }n\geq N$$ which shows that $f_n\to f$ uniformly.
Now assume that $f_n\to f$ uniformly. Take any $\varepsilon>0$. Let $\delta>0$ be such that $|f(x)-f(y)|<\varepsilon$ if $d(x,y)<\delta$. Let $N$ is large enough that for $n\geq N$ and any $x\in S$ we have $|f_n(x)-f(x)|<\varepsilon$.
Now, take any $n\geq N$ and $x,y\in S$ such that $d(x,y)<\delta$. Then
$$|f_n(x)-f_n(y)|\leq |f_n(x)-f(x)|+|f(x)-f(y)|+|f(y)-f_n(y)|<3\varepsilon.$$
This shows that the family $\mathcal F_N:=\{f_n:n\geq N\}$ is uniformly equicontinuous. Therefore $\mathcal F$ is also equicontinuous, since $\mathcal F\setminus \mathcal F_N$ is finite.
Best Answer
Actually, this is the Dini’s Theorem. You can see this lecture note: http://www.math.ubc.ca/~feldman/m321/dini.pdf