I'm not 100% sure about what I'm about to say because I haven't confirmed it with the whole Pokémon list, but I'm bringing it here so others may comment.
I believe the only difference between Primary and Secondary types is mostly due to the basics of the Pokémon in question: Primary type is what it will always be, while Secondary type may change.
Example: Surskit is a Bug/Water type. It will always be a Bug, even after evolution, but as it evolves it's Secondary type no longer applies.
This would also explain why Flying types are always secondary, as they are only "flying" when in flight. Otherwise, when on land, they are simply what their Primary-type defines (Pidgeys are Normal, Zapdos is Electric, and so on).
I believe the games assume Flying-type Pokémon are always airborne when in battle, but it would be interesting to see if, in future generations, they add the option to tell a flying Pokémon to land, hence "losing" its Flying-type temporarily (for strategic reasons).
Anyway, this is just a theory. If I missed any evidence of it being otherwise, let me know :)
EDIT: Actually, I just noticed that there ARE some exceptions, where it's the Primary-type that changes in evolution, but so far that only seems to happen when you use an unusual form of evolution (like Onix losing its Rock-type into Steel-type when trading it with a particular item). This seems to hint that both types can change, but the Primary-type refers to the nature of the Pokémon (harder to change), while the Secondary-type is mostly a complementary part of its existence.