So, we are using a custom authentication. The login gets the session id gets redirected to our custom authentication. Then our auth goes through the login procedure passes back the session/application number & a validation ticket. This works 95% of the time.
But, on occasion the session id will change. And our authentication fails. There are two examples below:

The first is ID 47729, we hit page 101 (login) it gets the 414021500261 session, gets redirected to our login. gets a validation ticket, then gets passed back to the application. However, APEX then changes the session number to 49508584005.
Then in the validation process on ID 47732 I get
INVALID_TICKET: Session does not match. Original=414021500261 supplied=495085840085.
That's an explanation of what is happening on my side.
So, my questions are:
1. Why is the ID changing?
2. Is there a way for me to prevent it from changing?
3. Is there a way I can pull the "old" session ID if it has changed to validate against? b/c I'm passing v('SESSION') which has changed and I'm not aware of a way to access the original session id.