A full client will normally contain the KRO files you need for an Exe to work. You will most likely need to do some trial and error since not all files of a certain full client date will be compatible with the exe version you want to use. usually you will need some compatible lua files to your exe. And they seperate it most likely so you can choose which exe you want to use. And for lua files, there's no version seperation like exe, but you can try doing things like downloading an old version of the repo(based on commits messages related to your exe version support) if the latest one doesn't work with it. Some also have wiki guides you can check to know which versions are supported etc.
I think you understand this correctly. You emulate the server because the client can't do all the backend stuffs it needs such as those connections, plus its made for multiplayer so it needs a centralize thing to manage all the data it needs to make it work, there's probably a way to make it not do that but it may not be the best way to do it . I think if its some sort of offline game that does not need a server, you won't need to emulate something. not sure if that makes sense.
npcs and scripts are done on the server emulator side such as hercules. But if you eg. want to add an npc with a custom sprite/looks you will need to add its files on the client side, and add the file names and its npc ID(so you can call it on server side) on client side files as well. Basically you have some functions on server side that can call some client side functions such as displaying effects, showing cutin images etc. And you use these functions/commands to make up an npc or event etc.
GRFs contains mostly things the client will display, not really database if you mean things like player stats and stuff. If you remove a certain function on emulators that calls or use eg. an interface displayed by the client, that interface may not work properly so i gues you do can disable(probably not all). There are some configs on the emualators that will make certain client side stuffs not work, theydon't necessarily exist on grf alone, but in the exe and the exe calls files related to it from the grf if needed.
I'm not sure if latest herc already have random option system but there are option system files available. You can try to eg. use the terms "herc.ws random option system" to see if its available for download if its not in the files or config hercules and go from there.
For refinement UI its already suppported as far as i could remember, given you use a client version that is compatible with it.
I have no idea what zero mvp card changes are but if they're effects changes its possible to create them.
For prenewal and others as long as you have the correct information relative to your expected result it can be done.
Most of these things can be done as long as you have the time, it'll take a lot of it but if you persist you can do it. You can learn whatever it is you need to accomplish these things. Sometimes all you need to do is the right google keyword for some of it too, if you need to do some src changes learn C(or c++ for rathena), if you need to get better at scripting you read the script_commands.txt , inspect all the files to get a grasp of where each things go.