So just of the top of my head, what you are attempting is no small endeavor. Here are some starter suggestions, i'm sure there are more somewhere on this forum. I recently just started modifying my own romhack.
look at this image on imgur :
https://imgur.com/a/TPr6kPD
To try and tackle what you want to do in order:
-Look trough the forum, i think they have suggestions for that, basically you need a clean rom, then you can add the base engine and possible expanded pokemon. I have not done this yet but i think its here.
-Yape can change types or add types to existing mons, change movesets, create double typed Pokemon. help you with making fakemon etc. But adding types you are gonna have to ask more seasoned boiis.
-Adding moves, i have no idea where to start, except if you do manage to figure it out, let me know how you went about that if you can in a simple way. It is easier to modify a current move. Aka rename tackle give it less power etc.
-Seek the forum here again, it is possible the battle engine they are talking about.
-You can use yape to add abilities that exist to the current Pokemon that exist.
-No idea, ask more people about this, i can only think of xse or assembly possibly atm. And i have no idea where to start there.
-Yape here, you can change the gender ratio there. If we are talking about specific mons in specific routes and genders. You may wanna look at the monster wild spawns, on the mapeditor or such.
-Adding items, i cannot help here, you are better off leaving the items alone, if you wanna do more, you have to possibly assembly or xse it.
-Well, to add trainers, they are basically npcs you can script and add with the map editor. But to go even further then that, like say badges and such you are gonna have to do more research.
-Night cycle, i think people talked about in the forums
-no idea
-look into the forums
-advance map tool, new locations require that you make them and somehow link the maps together with an exit, so create a exit on a current map, link the maps together. create them separately putting in npcs map tiles etc.
Hope that helps you somewhat.
--edit--
Look into the decomp version of emerald, it has an insane amount of flexibility and seems like you can change a lot of things by using just the decomped files, src etc. Images, items and such. It seems to be more available then using a hard file such as a .gba file. however after making changes you have to recompile the gba file. with something like maybe visual code.
original branch
https://github.com/DizzyEggg/pokeemerald
This one gives you more options and expansion with more pokemon i guess.
https://github.com/rh-hideout/pokeemerald-expansion/branches