Though I haven't checked every last thing, the most glaring issue is in Fusilier.xml, and it's related to how you're changing the Musketman, Rifleman, Musketeer, etc.
As a rule, whenever you're updating already-existing definitions (like the Musketman or Rifleman), you do
not use <Row>; you use <Update>. This is because <Row> will attempt to add a new Musketman to the database, but since it already exists, Civ5 discards your definition and the whole file it's in (such are the perils of XML).
<Update> removes a lot of the hassle and won't cause errors that conflict with the existing game database. For simplicity's sake, let's assume you're just changing the obsolete tech (to account for the Fusilier's existence and the new tech), and it would follow this structure:
Code:
<Units>
<Update>
<Where Type="UNIT_MUSKETMAN" />
<Set ObsoleteTech="TECH_MILITARY_TRADITION" />
</Update>
</Units>
Rinse and repeat for each unique Musketman/Rifleman you have to replace, and the structure is the same for anything else you may want to change--search for where you want to change something, then change the specific field you want.
Similarly, for renaming the Musketman to the Arquebusier:
Code:
<Language_en_US>
<Update>
<Where Tag=TXT_KEY_UNIT_MUSKETMAN" />
<Set Text="Arquebusier" />
</Update>
</Language_en_US>
This mistake is also present in other areas (like <Unit_Flavors>, where you're changing the flavors of the Musketman).
As you might guess, because the Fusilier does not already exist, using <Row> tag to add it is perfectly alright.
There's a similar issue in your definition of the Military Tradition tech, because you use <Row> to try to change TECH_RIFLING (except it already exists). I don't know what exactly you're trying to change at a glance, but use the <Update> statement as shown above instead of <Row>.
This is true of
everywhere you're trying to modify something that already exists in-game; in those cases, use <Update> instead of <Row>.