Hello there.
Block Chance should be loaded directly after YEP_BattleEngineCore. Move it in the list to be between that and dual wield.
Also, from the other comment, your shield does not have a note tag that gives it the block state. The plugin parameters specify a state ID to be the 'block state', if an actor is not afflicted with that state, their block chance is always zero.
Parry does not have that limitation, so it is working normally. Add a <passive state: x> to the shield, and set the ID for the block state in the plugin parameters to whatever you used for x.
Then make sure you paste the block state note tags into the state, because the state is where the actual blocking happens. The tag is in the plugin help documentation, or also there's a .txt file available for download that has the default one in it.
Without the state on the actor, a block can't happen, and if the actor has the state, but the state doesn't have that note tag on it, the block will "happen" but since the state note tags are what does everything, nothing will actually happen, no animation, no damage reduction, etc.
Again, parry works normally because it doesn't have a required state to work, and the note tags that would be on that state are in a notebox in the plugin parameters instead.