Look I know that many think the all star is stupid, a farce, hurts the league and doesn't belong. Many seem to forget this is mainly an event for kids and hence why the nhl keeps it and continues to try and improve it. Some of it has worked. Lately people seem to get into the 3 on 3 tournament. Here are some ideas I think would improve the game for the fans.
1st - Keep the captain selection via fan vote.
2nd - This is the first change, each team selects their own representative. GMs, players and coaches talk and get into an agreement on who should go. Think maybe the leafs preferred Marner or Reilly over Tavares. Maybe the Pens wanted Malkin etc...
3rd - The rest of the selection goes to the nhl.
4th - 4 players from the WNHL, yes the womens league should have representatives. This past all star game allowed women to be ambassadors they stole the show. The women should and need to be apart of the game. Each women will take part in a skills competition.
5th - Each captain of their division teams will select 1 women to play with their team in the game. I am sure that many players will sacrifice some playing time for the women to have a chance to play. The all star game is perfect, there is practically no hitting, pure reliance on the skill and little competition in terms of a mean streak, its the perfect game for nhl for introduce women to play. Many fans love watching women hockey, and this will grow the sport hugely for fans, sexes, kids, families etc... Kids can now look up to their moms more. Say things like maybe you can go to the all star game mom.
Doing this will allow some forgotten players a chance to play when they normally won't. It gives more for fans to cheer about. It will enhance a battle of the sexes in a fun way. It will give more bragging rights. I find it hard to think of how doing this won't immensely help the all star game and help improve the vision and expansion of the game.