Properties won't change?
I suggest to redesign your code:

import bge

scene = bge.logic.getCurrentScene()
controller = bge.logic.getCurrentController()
owner = controller.owner

raySensor = controller.sensors['Ray']
if raySensor.positive:
    if 'Body' in raySensor.hitObject:
        target = scene.objects['Target']
        target.worldPosition = raySensor.hitPosition

    owner['Body_Track'] = True


Recommendations: 


Filter "Collide" at the ray sensors configuration. All hitObjects have a property called "Collide". This way you get much less hitObjects and you do not need to filter by yourself. 
No need to import bge and bge.logic. One of them should be enough.
Writing the exact same code several times is a sign of the need to redesign the code.
Nothing in this code ever resets the property "Body_Track". That might lead to confusion.
No call to "property()" - this makes this function obsolete.