Can you post actual working code? Obviously what you posted is just a sketch of your code and it's hard to know what's going on. If not, here's how I would debug:
1. Is the cookie being sent back to the server by the client? You can check this with FireBug or by using a network analysis tool like WireShark.
2. Is the session setup code in your super class running? Maybe you have that session call in a method that's being overridden in the sub-classes and you're not calling $self->SUPER::whatever().
3. One way to test if it's #2 - duplicate the session config down into the two sub-classes. Does it start working?