Okay, so I managed to make this work somehow. It's messy, and it's probably not very orthodox but it does work.
Basically you have to create an executable for each of your levels and or menus.
then when you want to switch levels, you launch the new executable (by using the 'File' object) and close the current one (to avoid construct throwing a DX9 error) with system->close.
If you want to share data between levels (such as scores, lives, passwords, etc...) you can save it in a temp file like a hashtable.
I suppose there might be problems such as memory consumption, but it's useable , I tested it heavily.