First steps are logical: Bring F to the top-right corner, G to the bottom to make space and bring the small block (K) out from underneath E:
Next, bring the horizontal blocks (A, B) to the right of F allowing you to move G temporarily and rescue K out of its corner:
Bring H to the right underneath F to create shuffling space in the top left:
Now bring a horizontal block (B) between H and F:
Next we can stack the vertical blocks (C, E) as well as H to the left to allow more shuffling on the right:
Bring H to the bottom left (this one is quite tricky):
And slowly walk F to the left:
Bring a horizontal block (A or B) into the top right corner:
Now we can bring G all the way to the bottom right corner, giving us space to move the vertical and horizontal blocks around:
Bring a horizontal block (A or B) underneath G:
F back to the right and vertical blocks top left:
Now we can finally get H to the right and out of the way:
From here, it gets easy to start marching G to the left and up:
To get G up the final step, we still need to get the vertical blocks out. Bring H down and F back to the top right:
...and route G over the top to its destination: