Karttekk's link above (post #33) is for presumably a favorite for him, I prefer "PB Blast" myself even with the strong smell, everybody's got their own tried and true or at least preferred penetrant product. That's where you are right now, application of penetrant with soak time and repeats as needed. Overnight soaks, smacking it hard after that then repeating application and more soak time. 10 minutes here, half hour there, overnight if it's getting late, smacking it after every soak.
Know this, WD-40 is not a penetrant, it's a lubricant and rust inhibitor. Chain lube is just that, a lube(ricant), not a penetrant. Etc., etc.
No matter how the wheel comes off, it should be full of penetrant already when it does, that's the part of the job that will contribute the most results.
About those pieces of keystock that are frozen into the keyways.............I personally have had basically foolproof success in my career with them on stuck blower wheels, bearings, you name it that locks on with a keyway. I've always used a (sharp pointed) scratch awl as a punch to slide keystocks down the keyways, maybe followed by a welding rod or another piece of smaller keystock, until removed, one less impediment to moving the stuck part. Awl point centered (so as not to mushroom corners of keystock) on the end of the keystock, tap it along the keyway with a common hammer. All this after application of much penetrant, of course. Wheels and bearings etc. can then be twisted back and forth on the shaft or axle to get them loose, that rotation of them on the shaft or axle is what usually freed them up for me.
If I had to whip out the oxy/acet torch it was to cut up the part or cut the axle off.