Subequation aligning using matrix

You can't use equation within align, so just remove all those, add & before the equals signs, and add a line break (\\) at the end of the first line (after the matrix) and this works just fine.

\documentclass[]{report}   % list options between brackets
\usepackage{amsmath} %contains the advanced math extensions for LaTeX

\begin{document}

\begin{subequations}
\begin{align}
 \label{eq:model_m}
    [X] &=
    \begin{bmatrix}
    a & 0 \\
    0 & b \\
    \end{bmatrix} \\
 \label{eq:model_c}
    [Y] &=
    \begin{bmatrix}
    c+e & 0\\
    0 & d+f
    \end{bmatrix}
\end{align}
\end{subequations}

\end{document}

You don't need equation environment inside align. Align already contains the capabilities.

\documentclass[]{report}   % list options between brackets
\usepackage{mathtools} %Fixes/improves amsmath

\begin{document}

\begin{subequations}\label{eq:all}
\begin{align}
\label{eq:model_m}
    [X] &=
    \begin{bmatrix}
    a & 0 \\
    0 & b \\
    \end{bmatrix}\\
\label{eq:model_c}
    [Y] &=
    \begin{bmatrix}
    c+e & 0\\
    0 & d+f
    \end{bmatrix}
%\end{equation} 
\end{align}
\end{subequations}
Some \eqref{eq:all},\eqref{eq:model_c},\eqref{eq:model_m}
\end{document}

enter image description here