Once you call TCP::release (which you are doing initially in the CLIENT_DATA event), the data is released from TCP and no longer available via the TCP::payload command unless new data has arrived and the CLIENT_DATA event has not had a chance to trigger yet (eg: you are evaluating the LB_SELECTED).
I'm very curious why you want to access the TCP payload from the LB_SELECTED event in the first place... In the sample you posted, you do have the data saved off in a variable.
I am looking into the best way to release just the held connection initiation but continue to hold any data (which is what I think you are wanting).