Can mirror and witness have same port number?
As detailed in this MSDN document, the port number must be unique within any given computer:


  Note that if more than one server instance on a given computer requires a database mirroring endpoint, specify a different port number for each endpoint.  


TCP ports can only be served by a single process.  When you try to create two endpoints with the same port number on the same computer, you are attempting to have two processes monitor the same port.  

This image is contained on that page, and makes it quite clear:



If you are using unique computers for all machines in the mirroring configuration, you can configure each computer with the same port.