A bootstrap is a one way connection that ties one thing to another. That way when you add the first thing, the second also is added. For example, when you add a class, the class has a bootstrap for each class ability, all of those come onto the hero with it (although they may not yet be active).
A tag is part of what defines something in Herolab. You might think of them as sticky notes with certain words on them that can be added or removed from things in HL. You can also search for things that have a certain combination of tags and then manipulate that thing. For example, think of Full Plate armor, it has many tags like one that says "this is armor", another that says "this is heavy armor", and "this is made of metal", among many others. Tags change as you change things on your character. For example if you start a wizard, there will be no "proficient" tag on your full plate, but then when you add a level of fighter, the tag will be applied automatically.
Fields are the other main bit that defines a thing in HL, they store a value (like the field that stores the armor bonus for full plate), or a bit of text (like the description of full plate), and they can also be modified by the user. Most of them anyway.
How you manipulate things in HL is through eval scripts. If I understand your problem, you want to add CHA in addition to STR, right? You can do that with a script like this.
~ This part says "go to hero, then to the hero's child thing 'Attack', then to that thing's field 'tAtk' and get the value
hero.child[Attack].field[tAtk].value
~ This means add to, others are subtract "-=", divide "/=", and multiply "*="
+=
~ This part means "go to the hero, then the hero's child Charisma, then that thing's field aModBonus and get the value"
hero.child[aCHA].field[aModBonus].value
~ So put them together
~ Add the value of our charisma modifier to our attack bonus' value.
hero.child[Attack].field[tAtk].value += hero.child[aCHA].field[aModBonus].value