I use Lua as I have no experience with C#. I have seen no drawbacks for using any of them as they are both great in this situation. I would personally say Lua is easier to learn and understand in my opinion but you can use C# if you want.
As far as client and server goes. In FiveM there are natives that can only be called on the client unless it’s a native the FiveM developers added into the API to either be shared, client, or Server. Which it will tell you on the native.
For client scripts is where you would do all of the clients work as in setting the players ped model or spawning in cars, objects, etc.
For server that’s where you would want to keep all of your important data like important config files or if you have a mysql database you would use the server to interact with the mysqldb.
Sorry if I missed parts of the question I am about to fall asleep.