Which BASIC versions am I allowed to use?

You can use whichever BASIC you want, as long as it either interprets your game on DOS or it compiles your game to run on DOS. That means QBASIC and QuickBASIC are both allowed, as are GW-BASIC oder PowerBASIC or even Visual BASIC for DOS.

Do I have to provide source code?

You need to provide your game's source. For interpreted BASICs that's a given anyway, but also if you compile the game into an .exe file, you still have to provide the source.

Can I use Machine Code / Assembly / C?

You can use "small" blocks of machine code, no matter how they were created, through an assembler, a different high level programming language or hand-assembled.

You need to provide the source for those, too.

Regarding the maximum size of it, use common sense. The game should still be mostly BASIC, but some hardware may not be usable without a bit of machine code. If it feels like your game is more C than BASIC, we reserve the right to remove it from the jam.

Do I have to make the entire game in January?

No, you can use code you prepared before or finish a game you have been working on for a while.

Can I use AI to make art / write code / do X?

Hell no.