Looks like you are sailing!
At least for Spain you could consider picking up a local SIM on any one of numerous MVNO's with options for cheap international calls. They have all been talked about here. (e.g. Lebara, Yoigo or Happymovil). The SIMs are usually free (i.e. credit on SIM = SIM cost) Of course you can use these in Gibraltar too! In Spain there are many shops you can pick up SIM packs very easily.
Picking up a TIM card in kiosks/shops in Italy is also easy!
As for Madeira/Portugal and Monaco I will let someone more qualified answer.