The problem in my opinion is in the battle mechanics themselves. When a hero battles, the game checks which skills he has acquired and which he has not, so it can use only the acquired ones. I believe that when a hero has 0 skill points allocated on a skill, that skill is flagged as "non-useable" by the game. Otherwise, every time you would for example dodge an attack, even without any points on retaliate, the game would have to roll a dice with 0% chance to use the skill, which is practically same as not rolling at all but would make the code bigger and slower to run.
You as a Ghost Stalker would have something like this (skill points allocated randomly for the example):
Poison - 0 - Non-usable
Herbal Knowledge - 0 - Non-usable
Critical Hit - 7 - Usable
Mercenary Captain - 5 - Usable
Dagger Mastery - 0 - Non-usable
Javelin Mastery - 0 - Non-usable
Throwing Knives Mastery - 0 - Non-usable
Shield Mastery - 4 - Usable
Dual Wield - 0 - Non-usable
Ignore Armor - 0 - Non-usable
Evade - 2 - Usable
Stealth - 2 - Usable
Retaliate - 3 - Usable
Ambush - 0 - Non-usable
Blind - 1 - Usable
Now if this is correct, when you equip an item with a skill you don't normally own, that skill is added in your skills list in the level the bonus indicates. Thus, when you had Crushing Blow 1, your skills list changed to this:
Poison - 0 - Non-usable
Herbal Knowledge - 0 - Non-usable
Critical Hit - 7 - Usable
Mercenary Captain - 5 - Usable
Dagger Mastery - 0 - Non-usable
Javelin Mastery - 0 - Non-usable
Throwing Knives Mastery - 0 - Non-usable
Shield Mastery - 4 - Usable
Dual Wield - 0 - Non-usable
Ignore Armor - 0 - Non-usable
Evade - 2 - Usable
Stealth - 2 - Usable
Retaliate - 3 - Usable
Ambush - 0 - Non-usable
Blind - 1 - Usable
Crushing Blow - 1 - Usable
It's also stated correctly, that skill levels on the same skill don't stack, either they are allocated skill points or item bonuses. For example, if you had an item with Retaliate 2, it would have no effect on my example's skills list, since you would instead use your Retaliate 3. However, there seems to be a problem when an item gives bonus to a non-acquired class skill. In your example, you got an item with "Ambush 4". The game compares the item's "Ambush 4" and the hero's "Ambush 0", picks the item's bonus, but does not remove the "Non-usable" tag. Your skills list would now be like that:
Poison - 0 - Non-usable
Herbal Knowledge - 0 - Non-usable
Critical Hit - 7 - Usable
Mercenary Captain - 5 - Usable
Dagger Mastery - 0 - Non-usable
Javelin Mastery - 0 - Non-usable
Throwing Knives Mastery - 0 - Non-usable
Shield Mastery - 4 - Usable
Dual Wield - 0 - Non-usable
Ignore Armor - 0 - Non-usable
Evade - 2 - Usable
Stealth - 2 - Usable
Retaliate - 3 - Usable
Ambush - 4 - Non-usable
Blind - 1 - Usable
This theory would explain all the facts we got, but it would be a bug instead of a feature and would need to be fixed.
Note that it's only a theory though, and could be totally inaccurate. We'd have to either test it*, or ask for a CM to test it.
*If my theory is correct, putting 1 skill point in Ambush would remove the "Non-usable" tag, the Ambush 4 item skill would still be picked as better and the skill would work at level 4 as intented.