There is a disappointingly small amount of information about running a dedicated server, and most of it is 1 or 2 years old at this point.
I just set up a dedicated server on a new Server 2016 box I set up. The only port forwarding that needs to be done is the UDP 9900-9915.
As for the Windows firewall, I made the exceptions for the same ports - Allow UDP 9900-9915. I also noticed, after running netstat, that the PEServer is listening on some other ports in the high UDP range, so I went ahead and used the basic firewall settings to "Allow an app or feature through Windows Firewall" and add the PE_Server.exe to the list. I suppose, if all else fails, turn off the Windows Firewall while you are troubleshooting.
Once this was done, I ran the "StartServer" shortcut, waited a few minutes and my server showed up in the public listing.
As for the config file, I'm still not sure on what all of the settings do, leave most of these settings alone:
LobbyIP: Leave this alone
LobbyPort: Leave this alone
ProxyIP: Leave this alone
ProxyPort: Leave this alone
TeamNum: This apparently allows you to have multiple "parties" for PvP
NumPerTeam: How many people in each party
GameMode: The info here is still up to date so 0 = story (which is what I'm using), 1-adventure, 2-build, and 3... custom? (no clue)
GameType: I'm using 0 for co-op. We all automatically show up on the map and are in the same party. 1-VS and 2-Survival - I haven't been able to find much description on these
MonstersYes: I left this default at true
ServerName: This is the name that shows up in the public Lobby
MapName: This can be whatever you want - it's the name the server uses for the save file I believe
MapSeed: patheamaria - apparently the only random seed, however, this did nothing in story mode, it just loaded the story map
TerrainType: Couldn't find a good description on what this really does
ClimateType: Again, no documentation for what this really does
VegetationType: More mystery
MasterRoleName: I left this at default, as, again, there's no description of what this does
Password: YAY! Finally one that's self explanatory!
PublicServer: true - if you want it to show up in the public Lobby
UseSkillTree: false - no clue what this is
DropDeadPercent: How much stuff, or maybe just how much currency you drop on death?
UnlimitedRes: false - I think if this is set to "true" you can resurrect yourself without using the res item.
None of these map settings do anything in story mode:
TerrainHeight: 512 - I assume sets the limit to how high you can fly
MapSize: 2 - 2 what? I have no idea what the limits are
RiverDensity: 1 - I guess you can have really viscous rivers if you want
I'm sure it's how many rivers are on the map
RiverWidth: 1 - fat rivers - no clue what the max number can be
PlainHeight: 20 - I guess this is the default height above sea level?
Flatness: 25 - how... flat the ground is?
BridgeMaxHeight: 100 - no idea
AICount: 3 - not sure what this does - what does this number actually signify? I see far more than 3 AI NPCs... maybe it refers to the number of NPCs you can have follow you
ScriptsAvailable: true - yeah, sure... whatever.
It would be nice to have an official answer for some of this stuff. Like, what the hell does 25 "Flatness" signify? What is a MapSize of "2"? 2 Miles? 2 Parsecs?! In any case, hopefully this helps out. It had given me some frustration too.