I read somewhere in the forums that having more sprite objects is more CPU intensive then having more instances of one sprite object. So having 1000 different sprite objects affects the memory usage more then having 1000 instances of one sprite object that is recopied and reused.
Also I would think an object is equivalent to a class in programming. As for instances, well an instance is just the amount of copies you have for one particular sprite object. So lets say I created an object called "enemy", I can then have 10 instances of that sprite object by spawning/creating it 10 times on the map.
You can also specifically choose an instance of a set of objects.
Im not sure what you mean by manual instances, but objects do have properties as well.
If you want to create an instance variable for an object at runtime you have to click on your sprite object then look to your left menu to where it shows "Instance Variables" and assign them from there.
If you want to set a value to that particular instance variable you have assigned, then select the sprite object you assigned your instance variable to in the event sheet and use the "add actions" command to select your object and select the instance variable command.
You can then set your values (such as 100) to those instance variables by creating an event, for example
Event---> on start of layout,
Action-------->Set "Hero" instance variable "health" to 100