Maybe I am missing something here(highly possible as I really didn't read the code), but it would seem that the ordering would seem to be pretty key in this situation.
You'd want the platform to be processed first, and then the box.
Update Platform
Update Box
Otherwise... the box wouldn't catch up with the platform till the next frame -- which seems to be what I am seeing visually.
Frame 1
Update Box
Update Platform -- platform is now at it's new ypos that is further down the screen--- box is still where it was after it was updated -- slightly higher.
Frame 2
Update Box -- now box is updated and will be aligned correctly.
UpdatePlatform --- if the platform is still moving downward, we have the same problem again this frame.
If I'm missing something, just disregard all this. But based on the visuals, this appears to be about the ordering of what you are updating each frame.
Since the box's location is dependent on the location of the platform, you'd always want to update it first in a given frame.