I did find a way around with this code (from https://alexknyshov.github.io/R/page3.html):
tree2$edge.length[which(!(tree2$edge[,1] %in% tree2$edge[,2]))] <- sum(tree2$edge.length[which(!(tree2$edge[,1] %in% tree2$edge[,2]))])/2
And a deeper explanation on why the root appears this way when using the ape::root function can be found here: