1. I'm a little confused as to what you mean by Select, but if you want 1 attack file regardless the difficulty, one way to go about this is to use a number that you incorporate in a variety of different ways to balance things (loops, bullet speeds, bullet number, bullet delay, time between each bullet barrage, etc.). You would set up a number for each of the difficulties in whichever way you prefer, then pass it to your attacks. Making an in-game menu would be the best user friendly option for this method.
Example of how the difficulty number would work:
// 'difficulty' is the difficulty level; here, it ranges from 12, 36, 48, 72, 96, 120
let lovp = difficulty/4+7;
ascent(i in 0..lovp){
CreateShot01(x, y, difficulty/52+1.5, GetAngleToPlayer+(360/lovp)*i, RED03, 12);
}
2. I'm not familiar with #include_script, so I can't answer this with 100% certainty, though #include_function does make the variables defined there as part of the first script (along with all the other tasks/functions/subs)
3. Not necessarily with common data (you can just use a variable), but yes that's the idea.
Edit: Just realized there's a function called Select; this wouldn't be a good choice for the difficulty select; you'd have to make your own menu.