Explaining the Relative Energies of Various Vibrational Modes
I don't know how to explain the bending mode, but there is a nice mathematical explanation for the difference in stretching modes.

Take $\ce{CO2}$, carbon dioxide, as an example. I'll use B3LYP/6-31G(d,p) values. $\nu_{1}$, the symmetric stretch, is 1372 cm$^{-1}$, and $\nu_{3}$, the asymmetric stretch, is at 2436 cm$^{-1}$. Now consider $\ce{CO}$, a single carbonyl group (the molecule won't work for this example). Looking at an IR table, the average stretch will be about 1750 cm$^{-1}$. $\ce{CO2}$ looks a lot like two $\ce{CO}$ bonds that are linear and share a carbon. But, clearly $\ce{CO2}$ doesn't have a doubly-degenerate stretch mode of any kind at that frequency, so something is causing the local modes to not be identical to the normal modes. Because both local modes have the same symmetry, they are allowed to mix with some coupling between them, just like molecular orbitals. A local mode is a vibration that is completely uncoupled from all other modes; its motion does not influence the motion of other atoms and vice versa.

Set up a Hamiltonian for a degenerate two-level system with some coupling between them. Keeping with a Huckel-like picture, I'll use $\alpha$ for the energy level of each degenerate local mode and $\beta$ for the coupling between them.

$$
\hat{H} = \begin{pmatrix}
\alpha &amp; \beta \\ 
\beta &amp; \alpha
\end{pmatrix}
$$

Obtaining the normal modes and their energies is equivalent to diagonalizing this Hamiltonian, where the eigenvalues are the normal mode energies and the eigenvectors are the normal modes themselves as linear combinations of the local modes. Doing so gives the normal mode energies:

$$
\alpha - \beta, \, \alpha + \beta
$$

and the normal modes themselves:

$$
\begin{pmatrix}
-1 \\ 
1
\end{pmatrix},\,
\begin{pmatrix}
1 \\ 
1
\end{pmatrix}
$$

By convention in Huckel theory, $\beta$ is usually negative, so the 2nd eigenvalue is the one lower in energy.

If you take the dot product between each normal mode eigenvector and the vector of local modes:

$$
\begin{pmatrix}
\phi_{1} \\ 
\phi_{2}
\end{pmatrix}
$$

out falls the symmetric and antisymmetric combinations leading to the symmetric and asymmetric stretches. Leaving out the normalization factor of $1/\sqrt{2}$:

$$
(-\phi_{1} + \phi_{2}), \, (\phi_{1} + \phi_{2})
$$

Setting $\alpha = 1750$ cm$^{-1}$ and $\beta = -500$ cm$^{-1}$ gives a symmetric stretching frequency of 1250 cm$^{-1}$ and an asymmetric stretching frequency of 2250 cm$^{-1}$. Not bad for a model with a single parameter.

This is how the energy levels (eigenvalues) split with increasing the coupling between the initially degenerate local modes into distinct normal modes:



Here is a link to the Jupyter Notebook containing the math I did. This is a simplified (math-wise) version of what we did in a paper, since the conceptual point is identical.

This sort of description is how any two-level time-independent system works. See how the two spin energy levels of a free electron change in energy when an external magnetic field is applied (Zeeman effect):