Individually wrap each beet in tinfoil, drizzling with olive oil and a pinch of salt. Place covered beets on a baking sheet and bake for 45-50 minutes, until beets are completely cooked through and can be easily pierced with a fork. Let cool completely. (You can store foil wrapped beets in fridge overnight).
In a large bowl, mix together goat cheese, lemon juice, milk, crème fraîche, basil, and some black pepper. Mixture should be thin but not runny. If it's too thick and hard to spread, add a little bit more milk.
When you're ready to assemble, use your hands to gently rub the beets and discard the skin (alternatively you can peel them before you roast them, but I find this method easier).
Using a mandoline or a sharp knife, slice beets into ⅛ inch thick rounds. Start with the yellow beets and transfer to another cutting board/plate before slicing the red beets to avoid juices staining the yellow beets.
Line a 9 x 4 inch loaf tin with plastic wrap, leaving some hanging over the sides. Drizzle olive oil and rub to coat bottom and sides of tin. Start by placing a layer of red beets into the bottom of the tin, overlapping them slightly. Top with another layer of red beets. Using a small spatula or a knife, spread about ⅓ of the goat cheese mixture over the top of the beets. Next, add two more layers of red beets, followed by ⅓ of the goat cheese, 2 layers of yellow beets, the last of the goat cheese, and finally 2 more layers of yellow beets.
Fold the loose plastic wrap over the top to wrap completely (add additional plastic wrap if needed) and refrigerate for at least 8 hours.
When you're ready to serve, gently unwrap the terrine and flip it onto a serving platter. If you want the edges to look super clean, you can trim each side so you get nice, straight lines, however this is completely optional.
Slice terrine in ½ inch pieces, and sprinkle sea salt and basil on top right before serving.