But where do I hook into ASP.net to do this?
This depends on your business, you store things in the session whenever there is a need to.
It seems that if I do this then all I'm really doing is providing a different type of serialization. Couldn't LLBLGen do this automatically?
I think not, again this is a purly business related issue.
What to store/cache in the session and when varies from an application to another.
Also, won't I lose all the persistance state informtation thats stored in the entity instances?
Web applications are stateless by nature.
A state of an object should be lost after a postback, only data can e maintained across postbacks or during the lifetime of the session/application.
Another question, what is the definition of a 'complex type'? Does it mean any struct or class?
Yes.