And the heatsinks need to be on
all power semiconductors.
Depending on your settings and load conditions, the current control mosfet could easily dissipate more than your voltage control transistors.
Figure 23 of this datasheet shows a better way of doing a variable current limit. Instead of adding a separate current limit function, it uses the opamp to generate a current error signal that's feed back into the regulating engine of the L200. So no additional power devices are needed.
It does use the ancient LM741 opamp. If you change that, make sure that the replacement opamps inputs can operate near the positive rail. (Many can't)
https://www.mouser.com/Semiconducto...-Regulators/Datasheets/_/N-5cg9g?keyword=L200