I know you are familiar with some of this but it helps to explain it completely to keep it organized and maybe help others less familiar:
In Construct2 you have 2 basic types of variables, Global and Instance. A global variable is created inside an event sheet by right-clicking and selecting it, or by using toolbar. A value stored in a Global variable is available everywhere in your project. For example you could make a variable called Score=0, increment it each time the player gains a point using action "add to" inside a conditioned event and then grab or modify this value from ANY event sheet or layout.
However, the second type Instance variable is "local" in scope. It is created inside of an object using its properties panel. Since instance variables are limited in scope you can't expect to access or modify their values simply by calling up a variable available everywhere. You also need to make sure any event sheets containing objects with instance variables are included (right click inside event sheet and choose "include") so they can be accessed outside their event sheet, You would also need to address it specifically inside its containing object:
ie. Two variables called hitpoints, both store players hitpoints but one is global and one is instanced inside the player object. To subtract hitpoints you would:
Global: any action simply used subtract from hitpoints
Instance: any action would have to use player.hitpoints then subtract from
As you can see, this isn't a lot of work to do.. so many times I will use instance variables because I can keep them all neatly stored inside their own container object and then modify and call them on the fly from anywhere with just slightly more work. I even like using a "brain" object (simply a sprite kept off screen) that is just an instance variable container for game variables (score, level, etc). I am sure others may point out some limitations to instance variables over global but for most simple-medium sized projects I have found none besides the extra work to call them. That said... I am not trying to sell you on instance variables either. Pretty much all Construct2 projects can be made using nothing but global variables without seeing any appreciable slowing.
All that said: Most of the confusion you are probably having is with "instance variable" and "instance of an object". Such as when you create an enemy object (sprite) and then give it some instance variables like health, speed, etc. AND then clone it into more "instances" of the original. The instance variable will carry across ALL instances of the object. However, you can still modify them individually using " instance picking", this is how you can have enemies with the same instance variable of health but that will take damage at different rates... they are picked by an event condition such as "on collision" with or "is overlapping" another object. In this case a bullet "object" picks the enemy instance when it hits it. "Instance Picking" is covered in the manual and many tutorials/threads and is a core concept of Construct2, learn it and you will have won most of the battle.