Here's the relevant stuff I have. It has everything that's relevant to the Bard with placeholders for each ability/feature.
Personally, I think sticking to 1 single CFV source and controlling the addition of the features through an adjustment -> configurable is the cleanest implementation. I mentally groan every time I see how bloated out our configure hero screen already is. I'm going to take a stab at adding your code in for the Bard expanded spell list.
Code:
<thing id="p5CCFVBrd" name="Class Feature Variants - Bard" compset="InPlay">
<usesource source="p5eCFVUACP"/>
<bootstrap thing="cfg5CCFVBrd"></bootstrap>
<exprreq message="Test"><![CDATA[#levelcount[Bard] >= 1]]></exprreq>
</thing>
<thing id="cfg5CCFVBrd" name="Bard Variant Features" compset="Configure" uniqueness="unique">
<tag group="Helper" tag="Allow1Abil"/>
</thing>
<thing id="cBrd5CMgInsp" name="Magical Inspiration" description="<just needs text>" compset="CustomSpec" uniqueness="unique">
<tag group="AllowRCust" tag="cfg5CCFVBrd"/>
</thing>
<thing id="cAll5CSplVers" name="Spell Versatility" description="<just needs text>" compset="CustomSpec" uniqueness="unique">
<tag group="AllowRCust" tag="cfg5CCFVBrd"/>
</thing>
<thing id="cAll5CPrfVers" name="Proficiency Versatility" description="<Needs programming>" compset="CustomSpec" uniqueness="unique">
<tag group="AllowRCust" tag="cfg5CCFVBrd" name="Bard Variant Features" abbrev="Bard Variant Features"/>
</thing>
<thing id="cBrd5CXSplLst" name="Expanded Spell List" description="<Specific to the Bard, needs coding>" compset="CustomSpec" uniqueness="unique">
<tag group="AllowRCust" tag="cfg5CCFVBrd"/>
<tag group="Helper" tag="SpecUp"/>
</thing>