It is unclear if FS9 crashes upon starting (from desktop shortcut or programs), or upon loading the scene (scenery + aircraft, after selecting the flight settings)
If you say CTD at 31-33%, that would likely mean the later (upon loading the scene) as this is the starting part where you usually have the percentage telling you the CTD occurs a about 31-33%. Though, when you make change on BGL files outside FS9, there are also one or three percentage-like dialogs right when you start FS (some faster than others, updating the scenery library and Scenery.dat files).
Why it matters ? If the CTD occurs after the flight dialog upon loading the scene, FS9 tells you what part of the scene it is loading along with the percentage (objects, terrain, traffic, aircraft, modules, etc.) That would give you a clue about what probably caused the CTD.
If it's terrain, it's usually a corrupted mesh data.
If it's objects, it may be a corrupted BGL, a bad texture format (corrupted or not supported), corrupted models in libraries, what else ?
If it's aircraft, model ? texture ? gauge ?
If it's traffic, probably an incompatible model (ex: FSX model used in FS9) or a bad texture format (corrupted or not supported)
etc., you get the picture.
Try to pinpoint the kind of scene that causes the CTD.
If the CTD occurs upon updating the scenery library, there is nothing wrong with sceneries, rather something wrong with the simulator components, like user interface (bad bitmap format), modules (corrupted or bugged dlls), missing files, empty scenery directory maybe (causes a CTD ? I don't think so)....
The point is, use logic to identify first what would likely cause the CTD rather than focusing on one possible culprit. Causes may be plural or not where you think it is.
The way to identify the cause is by disabling part of the simulator, like some sceneries (or aircraft or traffic BGLs, etc.), then partially reactivating them until the CTD occurs again. The cause is among the last set of things you activated. Repeat the process until you identify what the actual file, or fileS causing the error. It may be BGL-related, but it may also be texture-related, or time of day or coordinates related.
Last, if you are pretty sure it's a BGL, identify what the BGL actually contains. A name "exclude.bgl" is just a name, it does not tell you what kind of data the BGL actually contains. You have several tools to identify the content of a BGL like BglAnalyze (or the old venerable ScDis), or Bgl2Xml, or TMFViewer, or SBuilder, perhaps MdlConverter, and a few more I don't remember the name. You can also use hex viewers/editors to analyze the BGL if it is small enough (like a simple exclude) and learn about BGL structure to see if there is corrupted data inside the BGL (that's what I did, but since it's copyrighted sceneries, helping you on that particular BGL is a copyright violation).
I'm just saying, there are ways and the tools I mentionned are usually enough, something anyone can do.
Yes, it's very annoying and frustrating, but, be pragmatic : you have to do it if you really want to enjoy the addons.