Cain is ADORABLE!
It is very smart of you that you got him in classes already. His behavior is not uncommon. We get in a fair amount of puppies at the shelter with the same behavior. The key is to change it ASAP before they are older and it becomes a major problem.
While some of it could be normal puppy behavior, Cain is also probably challenging your leadership. I would set boundaries and rules for him and never let him get away with breaking them. Don't let him on your bed or on any furniture (until the problem is fixed). If you have kids, make him sleep on the floor in the youngest childs' bedroom. Make him work for everything he gets. Even if you just want to pet him, have him sit first.
Are you crate training him? Do you know how to work on bite inhibition?
The Denver Dumb Friends League has some great articles on their site. Here are a few that might help you:
Let me know if you have any questions or want me to clarify or go into detail about anything. Your class should help out a lot. I highly recommend positive reinforcement training. In the meantime, when he grabs on to your pants, I would put him on a leash. Step on the leash so he has no room to do anything but sit there. Don't even give him enough slack on the leash to jump up. Then calmly praise him for sitting there (even though he has no choice, hehe). If he's pulling and struggling to get off the leash or away from you, don't praise him until he is calmly sitting.
Shiloh, Reece, Lolly, Skylar
and fosters Snickers, Missy, Magic, Merlin, Maya