I didn't thoroughly read all the replies so if this has been mentioned just overlook my response. I'd want to take a look at cam timing. Possibly jumped a tooth on one or more cam gears. That would hurt your power but not necessarily set a code. Could also be related to your spark knock problem. I'd pull the upper covers and have a look. Won't cost anything but your time to find out.