First vectorise the matrix $X$ so that $vec (X) = (X_{11},X_{12},X_{21},X_{22})^T$, here I chose the ordering of the base as $11 \to 1, 12\to 2, 21\to 3, 22\to 4$ In this basis now compute $Q = H\otimes 1 + 1 \otimes H$ (No transpose anywhere!), in the case of a matrix $2 \times 2$ we obtain $Q$ in the basis we want as:
$$
Q = \left( \begin{array}{cccc}
2H_{11}& H_{21}&H_{12}&0 \\
H_{12}& H_{11}+H_{22}&0&H_{12}\\
H_{21}&0&H_{11}+H_{22}&0 \\
0&H_{21}&0&2H_{22}
\end{array}\right)
$$
Now invert $Q$ and apply the inverse to $vec(BH)$, the result is $vec(X)$, that is the answer you want. I am guessing that what you did before was wrong because you used a transpose in $H$ (which should not be there), but it worked for the simple case you chose because that particular $H$ you wrote is diagonal so $H=H^T$ and they both agree. If you were to deal with a non-symmetric $H$ your answer would come out wrong because $Q$ was wrong. You should use the $Q$ I wrote above, that is a correct expression for $Q$, also valid when $H$ is not diagonal.