>"Changing the DataSessionID property setting increments the reference count of the data session changed to and decrements the reference count of the data session changed from."
>
>"However, if you create a data session by setting the DataSession property to 2 (Private data session), changing the DataSessionID property setting does not release the initial data session. In such case, the object must be released to the initial session"
Just to add to what Thierry said, any object created will maintain reference to the datasession in which it was created. Whenever an object's code runs, the DS switches to the one in which the object was created.
>This made me think that there is some way to manipulate the DataSessionID even at the risk of losing the datasources of the object
Worse, you'd further complicate things and the mess will be more complete.
Just use a search tool and find all the places where you set DS to 2, 3 or 4 and replace those numbers with whatever you decide to use to store the actual numbers. This is the simplest way that I see.