Hey there, apologies for missing this earlier, there's a lot of forums and sometimes it forgets to notify us of a new post.
At any rate, generally speaking this is a firewall thing unless one of you has changed the port that you're trying to connect with. The port is in the settings window, and you want to make sure that matches on both the host and the client or they can't connect. Normally it's always the same unless someone changed it.
Beyond that, it's up to software firewalls, pretty well every time. Sometimes people have more running than they realize, through their antivirus suite as well as their windows firewall or something along those lines. Some firewalls require that the game be given both server and client style of exception permissions, others also require that the specific ports be allowed access. It's really bizarre how many different ways there are with all the firewalls out there.
In terms of not being able to see one another naturally on the LAN, that's not all that uncommon, because a lot of firewalls block broadcast packets, which is how games say "here I am, there's a server here" to the network at large. In those sorts of cases, what you have to do is find out your local IP of the host machine and directly connect in that fashion. If you open a command prompt and type ipconfig /all, it will give you information on your local IP address.
Hope that helps!