Since Transform Geometry
doesn't have a Selection socket, we need to use the Scale Elements
node in Single Axis mode, as @Gorgious suggested. However, simply making the Z axis $0$ would result in a single direction of $(1,1,0)$ whereas we want to scale on two axes—$x(1,0,0)$ and $y(0,1,0)$—so we need to use two Scale Elements
operations one after another for each of them:

By default, Scale Elements
node scales each face or edge from their own individual 'origin's. To make them move together, we need to use a single Center as the operation origin—here I'm doing that by providing it with the selection's average position I get from an Attribute Statistic
node.
As a side note you're perhaps already aware:
Why don't we use the three Named Attribute
s as a selection directly, and first make it go through a Capture Attribute
instead?
Because, it seems, domain interpolation going from vertices (Point domain) to faces have some differences between the old vertex group system (which is a special kind of float+boolean attribute field) and the new generic attributes system in Geometry Nodes. Directly using the vertex groups as a selection gives you extraneous faces (faces those vertices belong to) you don't want in your scaling operation. Capturing the vertex groups as a boolean field in the Point domain forces Geometry Nodes to re-do the interpolation, this time without those extraneous faces in our selection:

