Rather than reinvent the wheel...from your basic description there is a commercial module for "per item" shipping that has been reported to be highly versatile. You might open a dialog with them.
PM me for reference.
As to the rest, one of the Dev's will have to fill you in on the session programming.



