For fun, I categorized all the humanoid characters of the series into age groups according to physical appearance:
9 and lower (young children)
Rumia, Cirno, Flandre, Kisume, Sunny Milk, Luna Child, Star Sapphire, Shinmyoumaru
10-12 (preadolescence)
Ellen, Yuki, Mai, Daiyousei, Remilia, Chen, Suika, Wriggle, Mystia, Tewi, Medicine, Suwako (older?), Nazrin (older?), Kyouko, (older teen?), Kosuzu
13-15 (young teen)
Rika, Chiyuri, Lyrica, Merlin, Lunasa (older?), Shizuha (older?), Minoriko, Yamame, Satori, Koishi, Futo, Benben (older?), Yatsuhashi
16-19 (older teen)
Reimu, Marisa, Yumemi, Ruukuto, Orange, Kurumi, Mugetsu, Gengetsu, Sara, Koakuma (older?), Patchouli (older?), Sakuya, Alice , Lily White (younger?), Youmu, Reisen, Kaguya, Mokou, Aya, Eiki, Nitori (younger?), Momiji, Sanae, Parsee, Rin, Utsuho, Kogasa (younger?), Ichirin, Minamitsu, Nue, Hatate, Mamizou (older?), Kokoro, Sekibanki, Seija, Akyu (preadolescence?), Tokiko, Reisen II (younger?), Maribel, Renko, Kasen,
20-24 (young adult)
Elis, Meira, Rikako, Kotohime (older?), Kana, Elly, Louise, Yumeko, Meiling, Komachi, Hina, Yuugi, Iku, Tenshi, Shou, Yoshika, Seiga, Tojiko, Miko, Wakasagihime, Kagerou, Yorihime
25 and higher (adult)
SinGyoku (both gender), YuugenMagan (younger?), Sariel, Mima, Kikuri (younger?), Konngara, Yuuka, Shinki, Letty, Yuyuko, Ran, Yukari, Keine (younger?), Eirin, Kanako, Byakuren, Raiko (younger?), Rinnosuke (younger?), Toyohime (younger?)
Akyu is the one I'm most unsure about... The wiki lists her age as 19, but I remember the last time we saw her official age, it was listed as 10... She does look older in Forbidden Scrollery, though...
Not counting minor characters pretty much ignored by the fandom and those who never made physical appearances, I think that should be all, but please let me know if I'm missing anyone.
And just so you know, I based YuugenMagan's age off the "human form" seen in the middle of where the eyes are connected to.
Thanks!