Tbh I don't really think there is much explanation behind it instead of Spaghetti code.
Vayne's W is on-hit does not interact with Runaan's.
MF's P is on-hit does not interact with Runaan's.
Caitlyn's Passive is an on-hit but does not interact with Runaan's, but the stacking DOES.
Ashe's Passive is an on-hit that DOES interact with Runaan's. Her Q is an on-hit effect that ALSO interact with Runaan's, but the stacking does not.
Quinn's Harrier Passive is a targeted buff with an on-hit component, that when Proc'd does NOT interact with Runaan's.
Jinx's Q is an on-hit that interacts with Runaan's hurricane, Pow-Pow will even generate 1 stack per enemy hit. However any other On-hit effects will ONLY be proc'd by the main target and will not proc on the others.
Honestly if you ask me there is little to no consistency in regards to Runaan's hurricane and it's interactions with On-Hit effects vs On-Attack effects, and for the most part the item seems to be personalized for each champion involved.
Another point of contention is where is the line drawn at which passives DO and DON'T interact when used on Towers.
For Example, Tristana and Ashe's do not, but Caitlyn and Jinx's do.
EDIT: Just a thought, perhaps the abilities need to be self-buffing in order to stack on towers.