Often overlooked in a situation like this is the mechanical condition of the engine. I suggest you start with a compression test and if you find an issue, a leak down test to determine the mechanical condition of the engine before looking for an electrical cause of the problem. I also recommend you check the condition of the timing chain or belt to see if it is loose. Loose timing components can cause misfires.
More info on solving problems like this here: http://www.ericthecarguy.com/faq/solving-automotive-performance-issues