Right now I have a matrix of the form
\begin{pmatrix} 0 & (a^\top b) ~ b ~c^\top \\ c ~ b^\top (b^\top a) & 0, \end{pmatrix}
where $a$ and $b$ are vectors of the same dimension, and $c$ is another vector of arbitrary dimension. The bottom left submatrix is the transpose of the upper right submatrix. Is there any way to disentangle the variables here so that I get something, for example, of the following form $$M_1(a) \, M_2(b) \, M_3(c)$$ where $M_1(a)$ is a matrix that just contains $a$, etc.
While I don't see a way to decompose this into the form you suggest I was able to decompose the matrix to a similar form.
First, suppose $a$ and $b$ are $n$-dimensional column vectors and $c$ is an $m$-dimensional column vector. We can reorganize the expressions to
\begin{equation} \begin{bmatrix} 0_{n x n} & (a^\top b)b c^\top \\ c b^\top (b^\top a) & 0_{m x m} \end{bmatrix} = \begin{bmatrix} 0_{n x n} & b a^Tbc^T \\ c b^T a b^T & 0_{m x m} \end{bmatrix} \end{equation}
which can be decomposed into
\begin{equation} \begin{bmatrix} I_{n \times n} & 0_{n \times 1} \\ 0_{m \times n} & c \end{bmatrix} \begin{bmatrix} 0_{n \times n} & b \\ b^\top & 0 \end{bmatrix} \begin{bmatrix} 0_{n \times n} & a \\ a^\top & 0 \end{bmatrix} \begin{bmatrix} 0_{n \times n} & b \\ b^\top & 0 \end{bmatrix} \begin{bmatrix} I_{n \times n} & 0_{n \times m} \\ 0_{1\times n} & c^\top \end{bmatrix}. \end{equation}