Suppose $f$ is entire and $|f| = 1$ on $|z| = 1$. Prove that $f(z) = Cz^{n}$ Here is my answer.
By uniqueness theorem, $f(z)$ has finitely many zeroes in the closed ball $\overline{B(0,1)}$ and let $z_1,z_2,...,z_n$  (what if the zeroes are repeated??) be the zeroes of $f(z)$ such that $$f(z_1)=f(z_2)=...=f(z_n) = 0$$
Consider the function $$h(z) = \prod_{j=1}^{n}\dfrac{z-z_j}{1-z\overline{z_j}}$$
Then we consider the function $$G(z) = \dfrac{f(z)}{h(z)} = \dfrac{f(z)}{\left[(1-z\overline{z_1})\cdot\cdot\cdot(1-z\overline{z_n})\right][(z-z_1)\cdot\cdot\cdot(z-z_n)]}$$
We first look at the singularities $z = \dfrac{1}{\overline{z_n}}$, we noticed that since $|z_n| < 1$, we have $|z| = |\dfrac{1}{\overline{z_n}}| >1$, hence all these singularities are outside the circle $B(0,1)$.
Next we look at all the points $z=z_1,z_2,...,z_n$. Since $f(z)$ is entire and has zero of order $1$ at each point $z_1,z_2,...,z_n$, we can represent $f(z) = (z-z_j)g(z)$ where $g$ is analytic at $z_j$ and $g(z_j) \neq 0$. Thus we see that the factors will cancel out.
Hence $G(z)$ is a never zero and analytic function in the closed ball $|z| \leq 1$. 
Let us zoom in and look at the boundary $|z| = 1$, since each $|\dfrac{z-z_j}{1-z\overline{z_j}}| = 1$ on the boundary $|z|= 1$ whenever $|z| = 1$ and $|z_j| < 1$, we have $$|G(z)| = \dfrac{1}{1}=1$$
on $|z| =1$. Thus by maximum and minimum modulus principle, we found out that $$1 \leq |G(z)| \leq 1$$ 
for all $|z| \leq 1$. This implies that $|G(z)| = 1$ for all $|z| \leq 1$. This implies that $G(z)$ is a constant. Further implying that $$f(z) = Ch(z) ~~~\text{ for some constant } C$$
1. how do we show that $h(z)$ must of the form $\prod_{j=1}^{n}(z-z_j)$.
2. How do we show that the factors of $z-z_j$ will cancel out when the zeroes can be repeated?
 A: I cannot improve your approach, instead I'll use one I saw some time ago. I use it often in these "characterize the entire functions with this property"
questions, there were many good examples in Conway and online of this kind.
Let $f$ be a function as above. Define a new function via "double-conjugation inversion",  a technique I've seen a few times:
$$
g(z) = \overline{f(\bar z^{-1})}^{-1}
$$
What double conjugation ensures is that $g$ is meromorphic (doesn't have any essential singularities) on $\mathbb C \backslash \{ 0\}$. We also have that $g(z)=f(z)$ on the circle $|z| = 1$. By analytic continuation, we have $g(z)=f(z)$ for non-zero $z$. 
The key idea : furthermore, $g$ "carries" the pole of $f$ to $\infty$, in that it has a pole at infinity, of the same order $k$, as that of $f$ at $0$.
Indeed, this actually implies that $f$ is a polynomial of degree $k$, since an entire function with a pole at infinity is a polynomial (so $g$ is a polynomial). 
Since $k$ is also the order of the pole at zero, it also follows that $f$ has all it's zeros situated at $0$, so $f(z) = az^k$. Substitute $z=1$, then $f(1)=a$, so $a$ has modulus $1$. Hence $f(z) = az^k$, where $|a| =1$ additionally.
