You are setting the id but it's an Identity. You should not set it, SQL does that for you.
Instead of creating a new session use the same one, and retrieve using Get instead of Load.
On the difference between Load and Get: http://ayende.com/Blog/archive/2009/04/30/nhibernate-ndash-the-difference-between-get-load-and-querying-by.aspx