Yes, you can change the wsdl url in Service Center but you'll need to republish the eSpace afterwards.
If you need to change it dynamically you can also use the EnhancedWebReferences Extension.
Let me know if this was what you were looking for.
The SetWebReferencesURL is valid in the current Web Request, that is why it does not work if you place the operation in the OnSessionStart action.
For the action to affect a Web Service request, you must guarrantee you call the EnhancedWebReferences actions in the same Web Request (for example, just before calling the web service).
If you are putting the value in the OnSessionStart, I assume you are always using the same URL. If this is true, the best way to solve your problem is to place the effective URL you want to use in the Web Reference property (that you can find in the Web References tab in the eSpace detail page in Service Center).
Does this solve your problem?