The problem is that both Wyll and Shadowheart are bound by their subclass.
In the case of Shadowheart, they would have to add a domain outside of phb which is not likely to happen.
Its problem only if you make it problem ...
I mean simply lock the option to change subclass on those specific companions, prefferably with some note that this particular companion have subclass tied to his story and therefore cant be changed ... and Voila!
