The reason prices vary so much is that costs are still influenced by local conditions in each country, such as minimum compensation amounts for victims, civil liability rules, and the cost of vehicle repairs. Even within one country, prices may differ depending on where you live.
Insurance companies also have to comply with certain legal obligations if they want to sell insurance in EU countries where they have no base or branches. This explains why insurance companies tend to operate through local branches or partners and why you may find it difficult, in practice, to find an insurer willing to offer you cross-border insurance services.
When you register your car in Belgium — as you should if you plan to stay there over 6 months — you will have to prove that you have insurance cover. The Belgian authorities will have to accept insurance cover from any French insurance company that is authorised to provide services in Belgium. But if you find your French insurance company is not authorised in Belgium, you will have to find another insurer.
Normally you should buy insurance in the country where the car is registered. However, because you live in France and will eventually have your car registered there, you will have to use a French insurer. You should clearly explain to your insurer that you will need cover from the moment you take possession of the car in Germany or the moment it is dispatched if you have it shipped.
Even though your car will remain registered in Spain, you should check your insurance contract and see whether it covers the situation where the effective user of the car is a family member who is staying in another EU country. Otherwise, if your son has an accident in Portugal, your insurer might object that you didn't inform them of a fundamental change of circumstances.
YES — They can, but shop round to see if you can find a different Finnish insurer who will take account of your clean record in Italy. Your previous Italian insurer must provide you with a record of your claims history on request.