As you have not used the copy value button in the debug side panel, the object you have shown is confusing.
I believe the correct path is msg.temperature.
If you use the debug panel and hover to side of object name 2 icons appear, one is copy value, the other copy path. Both very helpful.
The copy value icon/button would give you a correctly formated object, and it would be easier to see the correct object structure.
You will always get the msg object. But you have moved the temp value now to msg.payload.
if you moved msg.status.temperature to msg, node-red would produce an error, as msg has to be returned as an object.
Your debug is set to see the complete object, not just msg.payload.
We can not give a solution as nothing is wrong, You are not understanding message objects and there construction correctly.
As said before, the change node is working properly , moving the temperature in the payload property of the message but not creating a new message that would contain only the temperature….
The tricky thing is that you did not noticed that debug node was configure to display the complete message…