Firstly, you should make sure that the camera is not tied up elsewhere, ensure all connections to the camera via GEVPlayer are closed before starting your application.
Where I have seen the TIMEOUT exception, the main issues have been around the PVBuffer, If you are able to connect to the camera but are unable to stream, try negotiating the packet-size once more before Starting the Acquisition, this is something that GevPlayer does but the samples may not.
Assuming that your network card settings are correct (jumbo-frames enabled, 9k) etc the issue may be in timing, some cameras require longer to connect to than others and Gevplayer characteristics are not necessarily what you may see using the SDK.
There should be a setting within the Communication Settings (cameraobject.GenLink) called AnswerTimeout. This can be increased, this will allow the camera more time between requests before it declares a timeout.
As mentioned above i would upgrade to the newest sdk 3.1.7, this should be free, as far as im aware pleroa licensing is not restrictive to a particular release version.
If you debug through your code and can find exactly where your code is crapping out i can provide more information.