Clarification:
Usually when a client connects to a server, the destination port is fixed (== listening port of the server). The source port is set to 0 by default is the application doesn't set it, meaning the kernel has to take a new non-used one. In older kernels, it will take n+1 (client 1 gets 1024, client 2 1025 etc,..). In newer kernels it is randomized (client 1 gets 3213, client 2 gets 21244,...). So usually if the application lets the kernel decide, you should have no problems.
If the application requires a fixed source port (the application specifically sets the source port) then this source port is used. A TCP connection is a 4tuple (source adress,source port, dest adress, dest port). There can not be 2 exact same TCP connections: In the case of an app that sets manually the source port (==source port is the same) and connects to the same server (==dest port is same) on the same machine (==dest adress same) from the same machine (==source adress same), you can only have 1 connection. This is your case and there is no workaround but to modify the app to use another source port available.
The
tcp port range is used for all applications and not per application.
If an application does not specify a source port (in the code, sin.port is not touched and let as its default value 0) then the kernel will assign itself a source port in this range.
If the application specifies a specific source port then this tcp port range is not used to override the application decision. So it won't help you I guess.
To summarize, you can not establish 2 connection from the same client to the same server if the app manually sets the source adress otherwise there would be a big mess on the network.
It could be that there is a workaround when setting ip aliases adresses or playing with NAT but I have no clue. The cleaner would be to modify the application.