On college fees. There are two programmes that are being (wilfully?) confused here.
First is Erasmus, the exchange scheme for enrolled students in EU colleges. This is usually a 60/40% split of location over an undergraduate degree, but it also covers some post-graduate studies which are full time abroad.
The second is the general agreements regarding capping of college fees, which stem from the freedom of movement and single market principles.
First off, there's no such thing as free education. Either your government pays for it, or you do. No lecturer works for free (although having done the job for a few years, I'll add that sometimes it feels like it). It's kind of sad that I have to point this out, but it seems to be missed.
So, under Erasmus, undergraduates pay the fees that their home institution charges, and when they do the "exchange" part of the study, they pay nothing extra. Regarding Scotland, that means that a student enrolled in a university in a fee-paying country has to pay for the Scottish leg of their exchange, even though their Scottish classmates don't when they go to the other country. The colleges remit details of student exchanges to their governments, and the EU member-states settle up the differences in funding: because Erasmus is an exchange, these differences usually amount to not a lot really.
If you wish to apply to a foreign institution to study a full course abroad, your rights come under the various EU treaties, and these say that no EU national can be discriminated against when in another member state. That means that an EU national cannot be charged more than a native of the country would be. In Scotland, which did not charge tuition, that means you pay no tuition; in England, which does, that means you do have to pay tuition, but you cannot be charged more than a UK citizen would have been.
However, (and this is where the xenophobic bullshit of Brexiters diverges from reality) a Belgian studying in Scotland isn't getting one over on the Scottish taxpayer. Their studies are paid for by... the Belgian taxpayer. Just like in Erasmus, every government balances their account to ensure that onc country isn't losing out by paying to educate students whose taxes were paid into another country's education budget. In this case, there usually are significant transfers, as some countries attract higher numbers of foreign students than others. (The UK was a net beneficiary of this scheme, not so much because it has very good universities as because UK students don't study abroad as much as their continental cousins)
Incidentally, excluding "rest-of-UK" students from Scotaland's free tuition regime was dictated by Westminster, partially at the request of the English universities that didn't want to be undercut, but also because the cost of educating those non-Scottish UK students would eventually have fallen back to Westminster, which would have negated its effort to slash education budgets by imposing fees.
The EU member states were happy to pay for the education of their students in Scotland, so that's why they got "free" places while the English didn't.
And once again, we find that all along it was the Westminster government that was responsible for shafting the English, and not the EU...