I've been thinking about this in the past and I think I figured out a way, but it still seems a bit "hacky".
The way I'd do it we would have 3 objects. The shadow, the object the shadow should cast from (we'll call it the player), and an invisible object that would bind the two together.
Then what you'd actually be controlling would be this invisible object, not the player. This way you could pin the shadow and the player to this object, and when the player wanted to jump you'd unpin him, make the jump, then pin again when he's done.
About families, if you want to create the same shadow sprite to each object of the family, it's simple - at the start of the layout, create a "For each (ordered)" for the family. This will run through each object in the family that's currently in the layout, then you can use actions like "For each (ordered) familyname -> create "shadow" at familyname.x familyname.y -> Pin "shadow" to familyname.x familyname.y".
Be sure to order it by familyname.iid too.
Of course, there's probably a better way, but that's how I'd do it.