A big issue with the current captain system is that teams can quickly lose access to their captain when a better version of that player is released. For example, the Yankees have Jeter and Pettitte captains, but upgraded versions of those cards arrived early this season, creating an unnecessary choice between using the best card and keeping the captain boost.
One solution would be to designate certain players as captains and allow any version of that player to activate the boost. This preserves lineup flexibility while maintaining the theme team concept.
An even better long term solution would be to remove captains from individual cards entirely and make them a customizable theme team option, similar to selecting bats, uniforms, or socks. Players could equip a Yankees theme, Mets theme, or other team affiliation regardless of which card versions they are using. This would also open the door to more creative themes beyond teams, such as nationality, age, era, draft class, or other roster-building concepts. These customization's could also be added as be equip-able items found in packs that have progressive bonuses (based on rarity) and additional themes as the season progresses.