Correctly resizing textures inside widget buttons

I’m finishing my prototype inventory menu, but I’m stuck with my texture getting resized, stretched and wrongly positioned.
The basic idea of the inventory is that every item can have different sizes (from 1 to whatever), and once they’re added, their icon is resized based on said size. In short, with size 1 they keep their standard XY, with size >1 they need to be rescaled along the X axis
Ideally, when rescaled, the item should occupy exactly the space of following buttons, so if size is 2, the button should just have Xsize * 2 and so on.

But nothing works right: items with Size 1 have minuscule textures, and their parent button is rescaled as well. Items with size 2 or, god forbid, 3, are gigantic. Even worse, they get misaligned

Empty inventory

Inventory with items

The X squares in “Pockets” and “Backpack” are a widget with the following hierarchy:
SizeBox(SlotSizeBox)->Button->Image(SlotImage)

Blueprint code that updates the slot