Is it better to route Ethernet on the top layer, or to use vias?
Let's start from the basics. 
You do not want vias on your high speed signals because

(1) vias can go through ground and power planes so your 2d impedance geometry calculations now become 3d impedance geometry calculations. 

(2) all your signals need a return path. So if you insert two vias on a differential path you also need to insert two grounding vias

Check rule 6 from this memo: https://www.autodesk.com/products/eagle/blog/8-pcb-grounding-rules/

Also if this is a group project you do not want everyone to blame  you for all the problems. It will be harder for you to convince yourself/your_team that this issues do not come from a mismatch via than from exterior layer noice. Because you can buy a "shield box" that can prove that the noisy measuments do come from noise. 

So forget about the routing vías and do the top/bottom layer option. Also it will help if you place some shielding vias (you might need to ask manufacturer for some specs for you via) https://www.altium.com/documentation/altium-designer/via-stitching-and-via-shielding-ad.

As for the PoE, it does sound like it is going to give you some issues if your traces are &lt;10mils apart. Consult the manufacturer for the voltage/current you want.