The engine-components subgroup is only added by If I Had A Nickel.
The zinc-plate error can be fixed by either commenting this line in recipe-modify.lua:
util.add_product("zinc-plate", {name="indium-plate", amount=1, probability=0.6})
or by enabling Bismuth, which affects the same recipe. This suggests your add_product function is not setting the main_product of the recipe - recipes with multiple outputs need either an explicitly defined icon or a main_product to grab the icon from. (Oddly, the indium byproduct does not actually appear in the game when the line isn't commented and bismuth + K2 are loaded.)
The tantalum capacitor error is caused by this line in tantalum-recipe.lua:
tantalum_capacitor_ingredients = {{mods["bzlead"] and "lead-plate", 1}, {mods["manganese"] and "manganese-plate", 1}, {"tantalum-plate", 1}}
If bzlead or manganese is not installed, the first part of the ingredient specification is omitted, and you have an amount without an item. You want the syntax to be
mods["bzlead"] and {"lead-plate", 1}
which will omit the entire ingredient if the mod is not installed.
There are also a few places throughout your code where you check for mods["modname"] and "itemname" - this doesn't do what you want it to. "itemname" is just a string. You need to check whether the item prototype exists at data.raw.item["itemname"]