Thanks @drmibell
I updated the issue this morning.
The issue is all of the nodes you've identified access their context in their constructor function. They are absolutely allowed to do that, but it exposes a problem with the way subflow instance context is created - it gets done after the nodes are created. But as the nodes have already accessed their context by that time, it breaks the link between the node context and its parent.
I've got a fix working, but it needs lots of testing as it has changed some of the core logic around context handling.