Okay! I decided to have a stab at the lua logs and I think I have a couple of solutions.
Both of these should go under the GermanyReinforcementToUK() function under ScriptEuro1940
Firstly:
This one is pretty simple, just using the already existing function UKIsSafe. In theory it should check the rectangle of hex's set out in the function to test whether or not a british mainland tile no longer belongs to the UK (so should work for anyone they are at war with, so it should work with countries like Italy or others). If so, and if the other checks pass, it should then allow for reinforcements sent from Germany. This is probably the better of the two.
Im not as confident about this one, but her it is.
This should go at the end of the fuction, so that it uses the already defined local variable. Unlike the last solution this should check whether or not an actual unit exists on UK mainland, so in that way its probably better that the last. However it will only work for German units, so alternate history or ambitious italians would'nt count.
I'll try to test this myself but if anyone could help that would be great. Also I'm not too confident with the code (especially the second solution) so if gedemon or anyone else could give it a quick look over that would be nice too.