Ok, if I understand well, you need to remove the BPC_Jump from your player and then call the ‘‘Jump’’ function on the BPC_DoubleJump.
If BPC_DoubleJump is really a child of BPC_Jump, it should have the ‘‘Jump’’ function too.
In the way you have it setup right now, you have 2 component instances from 2 different classes.
By calling ‘‘Jump’’ on BPC_Jump, it sets the ‘‘CanDoubleJump’’ value inside this instance, but does not affect BPC_DoubleJump
Then, you are checking the ‘‘CanDoubleJump’’ value on BPC_DoubleJump when calling ‘‘DoubleJump’’. Value that never changed
Sorry if my explanations are difficult to understand, I did not find an simplier way to explain this.