I'm trying to create a basic build system, I can build up from a block but I can't build off the side or down from a block without it clipping. Does anyone know a solution?

Sure. I have made a quick (and beautiful) drawing in Paint.
We start with a single block (in black). For simplicity, let’s only care about the X and Y axes, and ignore Z.

The red markings are the X location values, the blue ones are for Y.
Our block is located at X = 1, Y = 1.

Now the player launches a trace (orange line), hitting the block X = 1, Y = 1.

Not only do we get the location from the hit, but we also get the hit normal. In this case, we hit the negative Y face of the block, so the hit normal is X = 0, Y = -1.

We can now simply take the hit location and add the hit normal. This gives use the location of the block to create.

In your Blueprint, you would only need to add the hit normal from the hit output structure. Something like that:

The normal is a normalized vector, so you need to multiply it by the size of a full block in your game to properly offset the location.

Also, the above only works because I assume the blocks are simple cubes. In your screenshot, you have more complex geometries. So you should make sure the collision of your blocks are simple cubes as well. If you have more complex collisions, the hit normal might be wrong for what we want. Take a look at the following:

In this example, the block collision is more complex and the hit normal goes in a completely different direction, and might not give the expected result.

In Unreal you can have 2 different collisions for the same mesh: the ‘simple’ collision and the ‘complex’ collision. You should make sure the linetrace is working with the simple collision (leave Trace Complex disabled) and that the simple collision of your blocks is a full cube. Then, nothing prevents you from having a more detailed collision as the Complex Collision, if you need to.

Hope this helps! You might have some tweaks to perform in some directions / axes, because of floating points and rounding operations, but overall this is an approach that should work.