Blueprint nodes break on startup, subclasses are not valid subclasses

Whenever I open my project I have to go through and compile several blueprints manually, as if it is compiling them out of order. The most annoying part is when nodes break, as seen here:

The output pin type is “Reference” not a reference to a type, just a “Reference”.

While annoying, until now I was willing to work around this problem and just compile a few blueprints (and refresh the broken ones), but when I try to cook the project (after fixing the startup problems) so I can make a stand-alone build, it fails. This is a real problem and I am stumped, though I have a feeling that both these problems have the same root cause.

[I have included the output from my failed Cook.][1]

Some important points in the output:
^ Errors start on line 738, with 2 more errors on lines 773 & 778.
^ All the Unit_ classes are subclasses of GridUnit, despite the error saying otherwise. SwitchClass is a function variable of type Class GridUnit (Class not Object).
^ The picture is taken from the EventGraph of the ChargeUnit class, which subclasses GridUnit, and is subclassed by Unit_Archer and Unit_Lancer, the blueprints which have additional errors.
^ ShowSpecial is a function (which Unreal4 treats as an event because it doesn’t have any return values), this just tells the GridUnit to color any GridSpaces in range of its special ability.
^ GetOnGridSpace gets the GridSpace object which is in collision with the GridUnit. GridSpace is a simple plane which changes color so different grid spaces can be visually highlighted.
^ VisualizeSpecial is a function in GridSpace which switches its color to purple to show it is in range of the unit’s special ability.
^ After visualizing a GridSpace, the GridUnit caches it so that when the visualization is not needed anymore the GridSpaces can be quickly reset.

I have the same problem, can’t find what is wrong in my subclass and cook failed too…