I think you might be going about this the wrong way. I'm pretty sure inbattle that characters have the same set of reference stats as monsters. All the bonuses from weapons/armor/accessory modifiy the stats on equip and then the new value is stored as the "effective stat", ie "effective strength" (has to be kept seperate or there would be no way to monitor if you've hit the max base stat of 100 etc), and this is the stat that is used for battle calculations.
Similarly, the materia check would be run from the menu every time you've finished with one character's materia setup (by either changing to another character, or returning to the main menu). Check the Magic and Status sections in the menu, the latest magic list and command list have already been generated for each character.
The only thing there is to initialize that hasn't been done prior to battle would be to setup non-permanent status effects (I think there's 28 of them? Sadness, Fury and Death are permanent, there may be another I've forgotten) and to reference back to the character's equipment to check for effects recieved at the start of battle, immunites, etc. There are no other calculations for characters because they're permanent objects that aren't created everytime a battle starts. Monsters, on the other hand, are *usually* unique to every battle (there are a few exceptions like Ultimate Weapon), so they must be initialized from the monster templates into a max of 6 tempory objects (6 is the most monsters you ever see at one time I think?).
That, atleast, is the most logical way to do it. You're doing a lot of unnecessary calculations if you're checking modifiers at the start of every battle, rather than simply everytime there's a change.