Your icons extend outside their own footprints, causing them to draw over other UI items. Both scale and shift are dependent on the final icon size. UI icon size is 32x32, so using 64x64 icons causes then to scale to 0.5 size to begin with, thus the 0.5 scaling has no effect. Shift offsets are also calculated within the the grid of the first icon in the list, so scaling that will throw off your offsets.
I'd recommend scaling icons down to 0.25 and using a Vanilla format - output as main icon, inputs as smaller icons in the corner. I threw together a couple of icons in case you want to use them:
fishlube.icons = {
{
icon = "__base__/graphics/icons/fish.png",
icon_mipmaps = 4,
icon_size = 64,
},
{
icon = "__base__/graphics/icons/fluid/lubricant.png",
icon_mipmaps = 4,
icon_size = 64,
scale = 0.25,
shift = {-8, -8}
},
}
fishcoal.icons = {
{
icon = "__base__/graphics/icons/fish.png",
icon_mipmaps = 4,
icon_size = 64,
},
{
icon = "__base__/graphics/icons/fluid/heavy-oil.png",
icon_mipmaps = 4,
icon_size = 64,
scale = 0.25,
shift = {-8, -8}
},
}