I don't understand why would you choose the default port to be value below 1024 which means you cannot run this on unix system without super user privileges.
Even when I change the port in the config file, it still tries to bind to 999 so the server crashes.
You probably changed the api port.
API runs over 999 TCP per default, unless you change in your config file, nodes exchange data ( transactions, messages ) over 999 udp.
Thats why it tries to bind to 999.
Are you stupid or what? That's the issue ... the software should not run on a port which requires root privilege.