So, after several unsuccessful tests, including calling everything through a function, here's what I was able to determine:
There is indeed a problem with timelines, specifically when switching from one timeline to another, whether with standalone object instances or with hierarchy. The first timeline positions the instances correctly, but as soon as you switch to a new one, the instances get shifted in position or angle.
What I've noticed is that the problem is tied to the Relative result mode. If you switch the result mode to Absolute, the offset doesn't happen. The problem with that mode is that it breaks the links created by the hierarchy. So that property becomes unusable in Absolute mode, which is quite a problem when animating a boss made of multiple parts.
The only way to work around this problem would probably be to stay within a single continuous timeline (untested). But this would mean building all your animations one after another on the same timeline, and switching by jumping to specific keyframe to trigger the animation you want. That's clearly not very practical, especially if you need to produce a significant number of animations. In short, it has its limits.
What I can conclude from this is that it's a fairly problematic bug in Construct. I had never needed to use Timeline until now, but for a boss made of multiple parts, the memory savings compared to frame-by-frame animation are considerable. Unfortunately, as things stand right now, it's completely unusable because of this issue.
I really hope this can get fixed in a future version, because it's a real shame to have to pass entirely on this feature.