[proofplan]
We construct the smooth structure on the complex frame bundle $\operatorname{Fr}_{\mathbb C}(E)$ from smooth complex vector bundle trivializations. Let $q:\operatorname{Fr}_{\mathbb C}(E)\to M$ denote the frame bundle projection. Each local trivialization of $E$ identifies a frame of $E_p$ with an invertible complex matrix, giving local charts $q^{-1}(U) \cong U \times GL_r(\mathbb C)$. On overlaps, the chart changes are left multiplication by the vector bundle transition functions, hence smooth. In these same coordinates, the right $GL_r(\mathbb C)$-action is ordinary right matrix multiplication, so it is smooth, free, transitive on fibres, and locally trivial in the principal-bundle sense.
[/proofplan]
[step:Use vector bundle trivializations to build local frame charts]
Let $\pi:E\to M$ denote the smooth complex vector bundle projection. Let $q:\operatorname{Fr}_{\mathbb C}(E)\to M$ denote the complex frame bundle projection, defined by sending each complex frame $u:\mathbb C^r\to E_p$ to its base point $q(u):=p$.
Let $(U,\Phi_U)$ be a smooth complex vector bundle trivialization of $E$, where $U \subset M$ is open and
\begin{align*}
\Phi_U:\pi^{-1}(U) \to U \times \mathbb C^r
\end{align*}
is a smooth vector bundle isomorphism whose restriction to each fibre is complex-linear. For $p \in U$, define the fibre map
\begin{align*}
\Phi_{U,p}:E_p \to \mathbb C^r
\end{align*}
by the rule that $\Phi_U(e)=(p,\Phi_{U,p}(e))$ for $e \in E_p$.
Define
\begin{align*}
\Psi_U:q^{-1}(U) \to U \times GL_r(\mathbb C)
\end{align*}
by
\begin{align*}
\Psi_U(u) := \bigl(q(u),\Phi_{U,q(u)} \circ u\bigr).
\end{align*}
Here a point $u \in q^{-1}(U)$ is a complex-linear isomorphism $u:\mathbb C^r \to E_{q(u)}$, and therefore $\Phi_{U,q(u)} \circ u:\mathbb C^r \to \mathbb C^r$ is an element of $GL_r(\mathbb C)$.
The inverse map is the function $\Psi_U^{-1}:U \times GL_r(\mathbb C) \to q^{-1}(U)$ given by $(p,A) \mapsto \Phi_{U,p}^{-1} \circ A$. Thus $\Psi_U$ is a bijection from $q^{-1}(U)$ onto $U \times GL_r(\mathbb C)$.
[/step]
[step:Check that the local frame charts have smooth overlap maps]
Let $(U,\Phi_U)$ and $(V,\Phi_V)$ be two smooth complex vector bundle trivializations. On $U \cap V$, define the complex vector bundle transition function
\begin{align*}
g_{UV}:U \cap V \to GL_r(\mathbb C)
\end{align*}
by
\begin{align*}
\Phi_U \circ \Phi_V^{-1}(p,z) = (p,g_{UV}(p)z).
\end{align*}
The map $g_{UV}$ is smooth because $\Phi_U \circ \Phi_V^{-1}$ is a smooth vector bundle isomorphism over $U \cap V$ and is fibrewise complex-linear. Let
\begin{align*}
\operatorname{pr}_2:(U\cap V)\times \mathbb C^r\to \mathbb C^r
\end{align*}
denote the second projection. More explicitly, if $e_j\in\mathbb C^r$ denotes the $j$-th standard basis vector and $g_{UV,ij}:U\cap V\to\mathbb C$ denotes the $(i,j)$ matrix entry of $g_{UV}$, then $g_{UV,ij}(p)$ is the $i$-th coordinate of the smooth map $p\mapsto \operatorname{pr}_2(\Phi_U\circ\Phi_V^{-1}(p,e_j))$. Hence every entry $g_{UV,ij}$ is smooth, so $g_{UV}:U\cap V\to GL_r(\mathbb C)$ is smooth.
For $(p,A) \in (U \cap V) \times GL_r(\mathbb C)$, compute:
\begin{align*}
\Psi_U \circ \Psi_V^{-1}(p,A) = \Psi_U(\Phi_{V,p}^{-1} \circ A).
\end{align*}
By the definition of $\Psi_U$,
\begin{align*}
\Psi_U(\Phi_{V,p}^{-1} \circ A) = \bigl(p,\Phi_{U,p} \circ \Phi_{V,p}^{-1} \circ A\bigr).
\end{align*}
Since $\Phi_{U,p} \circ \Phi_{V,p}^{-1}=g_{UV}(p)$ as a complex-linear automorphism of $\mathbb C^r$, this becomes
\begin{align*}
\Psi_U \circ \Psi_V^{-1}(p,A) = (p,g_{UV}(p)A).
\end{align*}
The map $(p,A)\mapsto (p,g_{UV}(p)A)$ is smooth because $g_{UV}$ is smooth and matrix multiplication in $GL_r(\mathbb C)$ is smooth. Equip $\operatorname{Fr}_{\mathbb C}(E)$ with the topology and smooth structure transported from the local products $U\times GL_r(\mathbb C)$ by the bijections $\Psi_U$.
To check the manifold separation and countability conditions, choose a countable vector bundle trivializing cover of $M$. This cover exists as follows: let $\mathcal B$ be a countable basis for the topology of $M$, and for each basis element $B\in\mathcal B$ contained in some member of the original trivializing cover, choose one such trivializing neighbourhood $U_B$. The chosen sets $U_B$ are countable and still cover $M$, because every point lies in some original trivializing neighbourhood and then in some basis element contained in it. The corresponding frame charts give a countable atlas after refining each $U\times GL_r(\mathbb C)$ by countable coordinate bases on $U$ and on the finite-dimensional Lie group $GL_r(\mathbb C)$. If two frames have different base points, separate them by disjoint coordinate neighbourhoods in the Hausdorff manifold $M$ and pull those neighbourhoods back by $q$. If two distinct frames lie over the same point $p$, choose one trivialization over a neighbourhood $U$ of $p$; their matrix coordinates in $GL_r(\mathbb C)$ are distinct and hence are separated by disjoint coordinate neighbourhoods in $U\times GL_r(\mathbb C)$. Thus the transported atlas gives a Hausdorff second-countable smooth manifold structure on $\operatorname{Fr}_{\mathbb C}(E)$.
[guided]
The point of this step is to prove that the local models constructed from different vector bundle charts do not conflict. Suppose we trivialize $E$ over $U$ and also over $V$. As in the exact construction, let $\Psi_U:q^{-1}(U)\to U\times GL_r(\mathbb C)$ and $\Psi_V:q^{-1}(V)\to V\times GL_r(\mathbb C)$ denote the frame charts induced by these two trivializations. The two vector bundle trivializations are related on $U \cap V$ by a smooth complex-linear change of fibre coordinates, so we define
\begin{align*}
g_{UV}:U \cap V \to GL_r(\mathbb C)
\end{align*}
through the identity
\begin{align*}
\Phi_U \circ \Phi_V^{-1}(p,z) = (p,g_{UV}(p)z).
\end{align*}
This definition is legitimate because $\Phi_U \circ \Phi_V^{-1}$ is a vector bundle isomorphism over $U \cap V$: it keeps the base point $p$ fixed and acts on the fibre $\mathbb C^r$ by a complex-linear isomorphism. Its smoothness as a bundle map implies that $p \mapsto g_{UV}(p)$ is a smooth map into $GL_r(\mathbb C)$. Indeed, if $e_j\in\mathbb C^r$ is the $j$-th standard basis vector and $g_{UV,ij}:U\cap V\to\mathbb C$ is the $(i,j)$ entry of $g_{UV}$, then $g_{UV,ij}(p)$ is obtained by applying the $i$-th coordinate projection to the smooth map $p\mapsto \operatorname{pr}_2(\Phi_U\circ\Phi_V^{-1}(p,e_j))$. Thus all matrix entries of $g_{UV}$ are smooth.
Now take a point $(p,A) \in (U \cap V) \times GL_r(\mathbb C)$. In the $V$-frame chart, this corresponds to the frame
\begin{align*}
u := \Phi_{V,p}^{-1} \circ A:\mathbb C^r \to E_p.
\end{align*}
To express the same frame in the $U$-frame chart, we apply $\Phi_{U,p}$ after $u$:
\begin{align*}
\Phi_{U,p} \circ u = \Phi_{U,p} \circ \Phi_{V,p}^{-1} \circ A.
\end{align*}
But $\Phi_{U,p} \circ \Phi_{V,p}^{-1}$ is exactly the matrix $g_{UV}(p)$, so
\begin{align*}
\Phi_{U,p} \circ u = g_{UV}(p)A.
\end{align*}
Thus the chart transition is
\begin{align*}
\Psi_U \circ \Psi_V^{-1}(p,A) = (p,g_{UV}(p)A).
\end{align*}
This formula is smooth because it is built from the smooth map $g_{UV}$ and the smooth multiplication operation on the Lie group $GL_r(\mathbb C)$. We then give $\operatorname{Fr}_{\mathbb C}(E)$ the topology and smooth structure transported from these local products. The transition maps are smooth diffeomorphisms, so this gives a smooth atlas. It remains to make explicit why the usual Hausdorff and second-countability requirements are satisfied. Since $M$ is second-countable, we can choose countably many trivializing open sets directly: take a countable basis $\mathcal B$ for $M$, and for each $B\in\mathcal B$ contained in some trivializing neighbourhood, choose one such neighbourhood $U_B$. These chosen neighbourhoods are countable. They cover $M$ because any point $p\in M$ lies in some trivializing neighbourhood $W$, and the basis property gives $B\in\mathcal B$ with $p\in B\subset W$. Each product $U\times GL_r(\mathbb C)$ has a countable coordinate basis because $U$ is an open subset of the second-countable manifold $M$ and $GL_r(\mathbb C)$ is a finite-dimensional Lie group. These product bases, transported by the corresponding maps $\Psi_U^{-1}$, form a countable basis for the frame bundle topology.
For the Hausdorff property, take two distinct frames. If their base points in $M$ are different, choose disjoint neighbourhoods of those base points in the Hausdorff manifold $M$ and pull them back under $q$. If their base point is the same point $p$, choose a vector bundle trivialization over a neighbourhood $U$ of $p$. In the chart $\Psi_U$, the two frames have the same first coordinate $p$ but distinct matrix coordinates in $GL_r(\mathbb C)$, and those matrix coordinates can be separated by disjoint coordinate neighbourhoods in the Hausdorff manifold $GL_r(\mathbb C)$. Transporting those product neighbourhoods back separates the two frames. Hence the resulting frame-bundle atlas gives a Hausdorff second-countable smooth manifold.
[/guided]
[/step]
[step:Show that the projection is a smooth fibre bundle projection]
In every chart $\Psi_U:q^{-1}(U)\to U \times GL_r(\mathbb C)$, the projection $q$ becomes the ordinary projection onto the first factor:
\begin{align*}
q \circ \Psi_U^{-1}(p,A)=p.
\end{align*}
Therefore $q:\operatorname{Fr}_{\mathbb C}(E)\to M$ is smooth, and each $\Psi_U$ is a local trivialization of $q$ with typical fibre $GL_r(\mathbb C)$.
[/step]
[step:Identify the right action in local coordinates]
Define
\begin{align*}
R:\operatorname{Fr}_{\mathbb C}(E)\times GL_r(\mathbb C)\to \operatorname{Fr}_{\mathbb C}(E)
\end{align*}
by
\begin{align*}
R(u,A):=u\circ A.
\end{align*}
This is well-defined because $u:\mathbb C^r\to E_{q(u)}$ and $A:\mathbb C^r\to\mathbb C^r$ are complex-linear isomorphisms, so $u\circ A:\mathbb C^r\to E_{q(u)}$ is again a complex-linear isomorphism.
In a local frame chart $\Psi_U$, for $u \in q^{-1}(U)$ and $A \in GL_r(\mathbb C)$,
\begin{align*}
\Psi_U(u\circ A)=\bigl(q(u),\Phi_{U,q(u)}\circ u\circ A\bigr).
\end{align*}
If $\Psi_U(u)=(p,B)$, then $p=q(u)$ and $B=\Phi_{U,p}\circ u$, hence
\begin{align*}
\Psi_U(u\circ A)=(p,BA).
\end{align*}
Thus the action is represented locally by the map $U \times GL_r(\mathbb C)\times GL_r(\mathbb C)\to U \times GL_r(\mathbb C)$ given by $(p,B,A)\mapsto (p,BA)$. Since multiplication in $GL_r(\mathbb C)$ is smooth, the action $R$ is smooth.
[/step]
[step:Verify freeness and fibrewise transitivity of the action]
Let $u \in \operatorname{Fr}_{\mathbb C}(E)$ and let $A \in GL_r(\mathbb C)$. If $u\circ A=u$, then composing on the left with $u^{-1}:E_{q(u)}\to\mathbb C^r$ gives $A=\operatorname{id}_{\mathbb C^r}$. Therefore the right action is free.
Let $p \in M$, and let $u,v \in q^{-1}(\{p\})$. Then $u:\mathbb C^r\to E_p$ and $v:\mathbb C^r\to E_p$ are complex-linear isomorphisms. Define
\begin{align*}
A:\mathbb C^r\to\mathbb C^r
\end{align*}
by
\begin{align*}
A:=u^{-1}\circ v.
\end{align*}
Then $A \in GL_r(\mathbb C)$ and
\begin{align*}
u\circ A=u\circ u^{-1}\circ v=v.
\end{align*}
Thus the right action is transitive on each fibre $q^{-1}(\{p\})$.
[/step]
[step:Conclude the principal bundle structure]
The charts $\Psi_U:q^{-1}(U)\to U\times GL_r(\mathbb C)$ are smooth local trivializations of $q$, and the overlap maps have the principal form
\begin{align*}
(p,A)\mapsto (p,g_{UV}(p)A).
\end{align*}
The right $GL_r(\mathbb C)$-action is smooth, free, and transitive on each fibre, and in every local trivialization it is ordinary right multiplication:
\begin{align*}
(p,B)\cdot A=(p,BA).
\end{align*}
Therefore $q:\operatorname{Fr}_{\mathbb C}(E)\to M$ is a smooth principal $GL_r(\mathbb C)$-bundle.
[/step]