I think the issue is that canon has come to mean in some quarters "set in stone", failing to realise that much stuff has to be open to interpretation, due to the fact that during the show some things change depending on the writer or plot requirement.
In Balance of Terror
for example Scotty says the Romulan Bird of Prey uses simple impulse. Yet, we all know that a sublight ship would take months if not years, simply to cross the Neutral Zone. Traveling from Romulus to the Federation outposts, going on a destructive rampage, then heading home again, would not be accomplished in the crew's lifetime. So, we have to accept that the ship traveled at warp, but could only fight at impulse speeds. TNG introduced the retcon of a quantum singularity powering Romulan ships, which means that effectively Scotty was right, he could not detect a Warp Reactor output.
If you go by a "set in stone" interpretation, then many inconsistencies just cannot be resolved. Canon should just be regarded as a general framework the stories hang on, and not that a single throw-away line of dialogue in Episode Two is exactly the same as conflicting dialogue in Episode Twenty-Two.
We can count ourselves fortunate that the makers of TOS attempted to at least be consistent, rather than just throwing episodes together with absolutely no regard to what had happened before.
Books cannot be ever included fully in the canon. If they did, the Klingons would never have appeared in the movies or later, as in Spock Must Die, the Organians restricted them to their home system and banned them from warp travel!
Although non-cannon aspects do sometimes sneak through the cracks, the voice chatter mentioning Franz Joseph ships in TMP and the FASA Orion Blockade Runner appearing on a library display in TNG being just a few examples.