Reducing states of a GTG
Actually the regular expressions from $q_0$ to $q_2$ and from $q_2$ to $q_0$ seem to be correct, but the loops around $q_0$ and $q_2$ are more questionable. Although they will lead to a correct answer, they could be simpler and I am not sure you applied the algorithm correctly.

If you want to be sure of your answer, I would recommend to use linear equations. This is exactly the same method, but it might be safer. In your case, you have the system
\begin{align}
X_0 &amp;= (a+b)X_0 + (aa + b)X_1 + ab^*X_2 \\
X_1 &amp;= X_0 + ba X_1 + bX_2 \\
X_2 &amp;= (bb + a) X_0 + aX_1 + 1
\end{align}
where $1$ denotes the empty word. You want to eleminate $X_1$. To do this, rewrite the second equation as $X_1 = baX_1 + (X_0 + bX_2)$ and apply the general result that if $1 \notin K$, the unique solution to the equation $X = KX + L$ is $K^*L$. In your case, you get $X_1 = (ba)^*(X_0 + bX_2)$. You now copy-paste this value of $X_1$ in the two other equations (and I really did it this way!) to get
\begin{align}
X_0 &amp;= (a+b)X_0 + (aa + b)(ba)^*(X_0 + bX_2) + ab^*X_2 \\
X_2 &amp;= (bb + a) X_0 + a(ba)^*(X_0 + bX_2) + 1
\end{align}
which leads to
\begin{align}
X_0 &amp;= (a+b+ (aa + b)(ba)^*)X_0 + ((aa + b)(ba)^*b + ab^*)X_2 \\
X_2 &amp;= (bb + a + a(ba)^*)X_0 + a(ba)^*bX_2 + 1
\end{align}
You can now recover the regular expressions if you wish: $q_0 \xrightarrow{a+b+ (aa + b)(ba)^*} q_0$, $q_0 \xrightarrow{(aa + b)(ba)^*b + ab^*} q_2$, $q_2 \xrightarrow{bb + a + a(ba)^*} q_0$, and $q_2 \xrightarrow{a(ba)^*b} q_2$.

A further simplification. You may observe that in your original automaton, you have $q_0 \xrightarrow{a+b} q_0$. This implies that for any word $u$, there is a path $q_0 \xrightarrow{u} q_0$. It means that the transition $q_0 \xrightarrow{a+b+ (aa + b)(ba)^*} q_0$ in the second automaton is redundant and could have been replaced by $q_0 \xrightarrow{a+b} q_0$.