Edit: Found that the theme options panel set up (using a class) was causing the problem. Still not sure why – would still love know how to find out what the problem is – e.g. is it a JS or PHP issue. Going to try a different method of creating the theme options panel to see if it fixes the problem.
I am able to add extra TinyMCE buttons that are bundled (e.g. HR, anchor), but am unable to add custom plugins of my own. I have also noticed that other plugins (WP-Table Reloaded, cForms, TinyMCE Advanced) are also unable to load custom plugins. Disabling all other plugins does not solve the issue. What could be causing this, and/or how can I find the problem?
When viewing source of an edit post screen, mceInit options do not list any plugins besides those defined as WP default. Altering the $initArray does work, but of course does not point to the correct location of added plugins.
You should read this: http://codex.wordpress.org/TinyMCE_Custom_Buttons
It’s pretty straightforward if you already know how to program a TinyMCE plugin (which it sounds like you do).