First, this section of the manual may help to understand the structure:
http://nicholasmr.dk/obblmwiki/index.ph ... e_in_OBBLM
Thus, since teams are entirely seperated between leagues, creating a new league is not an option given your requirements.
Also, you should note that teams and their stats cannot be "transferred/migrated" anywhere.
Currently your teams have entered match results into a given tournament (within a division, within a league). Thus, if you *could* MOVE the team to another league, for example, then all the team stats would dissapear from the league the team originally played in - causing the old standings tables etc. to be inconsistent. Do not try to attempt this, it'll wreck the data consistency in the database.
Now to your questions:
If you want old teams to be able to continue playing, then it must be in the SAME league. Therefore I'd create a new division for these old teams and simply schedule tournaments within that division for those teams.
Now, for the next season (question a) you can do either. I wouldn't suggest one of the other. However, note this: If you create new tournaments representing each season WITHIN the same division, then *all* the tournament match data will be joined together in the standings table of that division! You can, of course, view the individual tournament data (or in this sense the season data) from the tournament standings.
On the other hand, if you have many tournaments per season, it might be less cluttered if you create a new division for each season..
Note that for the above to work, you cannot use division ties (see the manual for explaination).
Also, before you do this, make a backup of your database, just to be safe if you want to play around with this. Maybe you could test both ways to see which fits you the best - it's harmless if you have a DB copy to overwrite with!