You could just label everything. Like this:

I picked a ground point, at random. Any specific point could be selected. But this is the one I picked, above.
Then you can just create a whole bunch of simple KCL equations, plus a few obvious relationships:
$$\begin{align*} \frac{V_{\small{A}}}{R_1}&=I_{\small{Z}} \\\\ \frac{V_{\small{B}}}{R_2}+I_{\small{Y}}&=0\:\text{A} \\\\ \frac{V_{\small{C}}}{R_3}+I_{\small{X}}&=0\:\text{A} \\\\ \frac{V_{\small{D}}}{R_4}&=\frac{V_{\small{E}}}{R_4}+I_{\small{X}} \\\\ \frac{V_{\small{E}}}{R_4}+I_2&=\frac{V_{\small{D}}}{R_4}+I_1 \\\\ \frac{V_{\small{F}}}{R_6}&=I_{\small{Y}}+I_2 \\\\ \frac{V_{\small{G}}}{R_5}+I_1&=\frac{V_{\small{H}}}{R_5} \\\\ \frac{V_{\small{H}}}{R_5}+\frac{V_{\small{H}}}{R_6}+I_{\small{Z}}&=\frac{V_{\small{F}}}{R_6}+\frac{V_{\small{G}}}{R_5} \\\\ V_{\small{A}}&=V_{\small{H}}+V_1 \\\\ V_{\small{F}}&=V_{\small{B}}+V_2 \\\\ V_{\small{D}}&=V_{\small{C}}+V_3 \end{align*}$$
Yeah. That's 11 equations and 11 unknowns. But it is simple to set up. And no supernodes to wonder about. You just assign currents to each voltage source, instead. Then the KCL just flows out from there.
Using SymPy/Python code:
kcl1 = Eq( VA/R1, IZ ) kcl2 = Eq( VB/R2 + IY, 0 ) kcl3 = Eq( VC/R3 + IX, 0 ) kcl4 = Eq( VD/R4, VE/R4 + IX ) kcl5 = Eq( VE/R4 + I2, VD/R4 + I1 ) kcl6 = Eq( VF/R6, IY + I2 ) kcl7 = Eq( VG/R5 + I1, VH/R5 ) kcl8 = Eq( VH/R5 + VH/R6 + IZ, VF/R6 + VG/R5 ) nA = Eq( VA, VH + V1 ) nB = Eq( VF, VB + V2 ) nC = Eq( VD, VC + V3 ) ans = solve([kcl1,kcl2,kcl3,kcl4,kcl5,kcl6,kcl7,kcl8,nA,nB,nC],[VA,VB,VC,VD,VE,VF,VG,VH,IX,IY,IZ]) for i,j in ans.items(): i, j.subs(vals) (VA, 1) (VB, 21/2) (VF, 27/2) (VG, -8) (VH, 0) (IY, -3/2) (IZ, 1/2) (VC, -14) (VD, -10) (VE, -38) (IX, 2)
And that is also another way to solve it.
Here's a run from LTspice:

Taking into account the signs used by LTspice for voltage source currents (negation), the results match up perfectly.
Using the image I gave you in comments, which uses a different ground reference:

Here's the LTspice results from that perspective:

And everything matches up, again. Just from a different point of view.
Keep your mind flexible. And practice redrawing schematics.
For example, your circuit can be redrawn in simpler form:

simulate this circuit – Schematic created using CircuitLab
There's no need for \$V_{\small{A}}\$ and because the \$7\:\Omega\$ and \$14\:\Omega\$ resistors can be combined together there's also no need for \$V_{\small{D}}\$. But the others show up, above.
It's now two much simpler, independent circuits.
The left side is trivially solved since you know, for sure, that there must be \$2\:\text{A}\$ downward through \$R_5\$. It follows that there is a \$42\:\text{V}\$ drop across \$R_5\$, or that \$V_{\small{E}}=-37\:\text{V}\$.
The right side has just two KCL statements: (1) \$\frac{V_{\small{F}}}{R_3}+\frac{V_{\small{F}}}{R_4}=\frac{V_{\small{H}}}{R_3}+\frac{V_{\small{B}}}{R_4}+I_{2b}\$; and, (2) \$\frac{V_{\small{H}}}{R_1}+\frac{V_{\small{H}}}{R_3}+I_{1b}=\frac{V_{\small{F}}}{R_3}\$. Plugging in the numbers, this solves out as: \$V_{\small{F}}=14.5\:\text{V}\$ and \$V_{\small{H}}=1\:\text{V}\$. It is trivial to then find \$V_{\small{G}}=-7\:\text{V}\$.