One of the things I like to use to get bad odors out of things is carcoal (the kind you BBQ with). Put the yarn in a large tub with lid with a lid, put the carcoal in a bowl set it on top of the yarn, put the lid on and leave for about a week. This is how I got the smoke smell out of a cashmere sweater that I purchased at a fire sale.