Over a PID, a module is torsion-free if and only if it is flat. Now $\mathfrak o_L$ is flat over $\mathfrak o_K$ just because $\mathfrak o_L$ is an integral domain containing the Dedekind ring $\mathfrak o_K$. Now, over a PID, finitely generated $+$ torsion-free imply free.
I hope the following will be clear. I divide the argument in two steps (At the end, you just have to set $A=\mathfrak o_K$ and $B=\mathfrak o_L$).
Let $A$ be a noetherian domain with $K=\textrm{Frac}\,A$.
Step 1. If $L/K$ is finite separable and $A$ is integrally closed in $K$, then its integral closure $B$ in $L$ is finitely generated over $A$.
You already know this step! but let me explain briefly the strategy.
Let $n=[L:K]$. If $\omega_1,\dots,\omega_n$ is a $K$-basis of $L$ and $\omega'_1,\dots,\omega'_n$ is the dual basis, then there exists a nonzero $c\in A$ such that $c\omega'_i\in B$ for all $i=1,\dots,n$ (such a $c$ exists because $L/K$ is algebraic). So this says that
\begin{equation} A(c\omega'_1)\oplus\dots\oplus A(c\omega'_n)\subseteq B. \end{equation}
Moreover, one has, after a small calculation, that \begin{equation} B\subseteq A(c^{-1}\omega'_1)\oplus\dots\oplus A(c^{-1}\omega'_n).\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(\star) \end{equation}
Now, the latter inclusion plus the noetherianity of $A$ tell us that $B$ is finitely generated over $A$.
Step 2. If, in addition, $A$ is a principal ring, then $B$ is free of rank $n$.
Indeed, we "surrounded" $B$ by two free $A$-modules of rank $n$. So, if we prove it's free we are done for its rank. The unique argument I know to say why $B$ is free is the one above: over a PID, finitely generated plus torsion-free together imply free. And the "torsion-free" part follows from the displayed equation $(\star)$.