It looks like you have an issue with how the unit are defined on each of your percent items.
When you use @itemName in the widget that first tries to fetch the display state (the state of the item formatted by whatever state description the item has) and if that fails, it falls back to the actual state of the item.
When you set the item for the gauge, however, the gauge always pulls the actual state. So, what you see is that the first gauge uses an item where the displayState is 36.0%, but the state is also 36.0%. However, the second gauge, for example, uses an item that has a displayState of 24.6% but mostly likely has a state of 0.246. And the gauge is correctly showing you 0.246.
If you want to see this more directly, use the widget expression tester in the developer sidebar and put in:
=items.nameofmemorypercentitem
You will an object in the output that clearly shows the difference between the state and displayState.
Carefully check how each of your items are defined.