The difference in meaning is very little, indeed;
Both 'mattino' and 'mattina' refer to
A) the time of day
B) the human activities during that time
If the emphasis is on (A), like in the weather forecasting (previsioni [del] meteo), use 'mattino'
If the emphasis is on (B), then use 'mattina'
But the rule is absolutely not strict.
Sometimes you need this meaning as a complement of something else, like
Sunday morning; here you must use:
Domenica mattina;
or Domenica al mattino (correct but rarely used)
Sorry to say, that the related particles do vary:
(a '+' sign points to the form more often used)
+ -- cosa fai domani mattina ?
-- cosa fai domani al mattino ?
+ -- mi sveglio di mattina alle 6 per rispondere a Italki
-- mi sveglio al mattino alle ...
++ - ci vediamo di nuovo domani mattina
- ci vediamo di nuovo domani al mattino
++ -- prevista nebbia in Val Padana al mattino
-- prevista nebbia in Val Padana di mattina
With 'ogni', tutti, use mattina:
-- ogni mattina veniva nella mia libreria la donna che poi ho sposato
-- tutte le mattine il GRA intorno a Roma e` pieno di traffico
(Gra: grande raccordo anulare: circular highway around Rome)
All in all 'mattina' means both 'mattino' and 'durante il mattino', although
sometimes you should also add 'di' with 'mattina'.