-Perez shouldn't start. His WAR is 1.1, which is 4th among AL catchers (Martin, Vogt, McCann). I would give it to Martin. He's been the best defensive catcher in the AL by a decent margin and is second only to Vogt in offensive value. If not Martin, then Vogt.
-Cain has an argument to start. Trout is the only no-brainer. After that, you have eight guys with WAR of 1.9-2.2 before a big drop to 1.4. Those guys are Cespedes, Jones, Reddick, Cain, Kieraier, Cruz, Bautista, and Gordon. I would be inclined to select Trout, Jones, and Cain.
-Shortstop is a terrible position in the AL. Iglesias has the highest WAR among players with 150+ PA at 1.6 and he's been the best defensive shortstop in the AL. Bogaerts (1.5) and Miller (1.4) are both close behind and have been plus defenders. Escobar is 6th in WAR (0.8). Should not start.
-Morales is 6th among DHs in WAR at 1.1. Cruz and Bautista lead at 2.0. Fielder, A-Rod, and Seth Smith all more deserving than Morales.
Here are the WAR-based AL starters:
C: Russell Martin (2.4; Vogt at 2.3 and Perez 4th at 1.1)
1B: Miguel Cabrera (2.5; next closest is Forsythe at 2.0 and Hosmer at 1.9)
2B: Jason Kipnis (3.7; next closest is Dozier at 2.3)
3B: Josh Donaldson (3.6; next closest is Moustakas at 2.0)
SS: Jose Iglesias (1.6; Bogaerts and Miller are close behind)
OF: Mike Trout (3.3)
OF: Yoenis Cespedes (2.2)
OF: Adam Jones (2.2; as mentioned above, argument for Reddick, Cain, Kiermaier, Cruz, Bautista, and Gordon over Cespedes and Jones would be warranted)
DH: Nelson Cruz (2.0; Bautista also 2.0, Morales 6th at 1.1)
Objectively, there are two Royals who have legitimately earned the right to start in the All Star Game (Cain and Gordon). Anyone arguing that Perez, Hosmer, Escobar, Infante, Morales, Rios, or Moustakas deserve to start are idiots. I guess all the smart baseball fans in Missouri are Cardinals fans.