I think the issue has to do with how much you are rotating by. In your loop, you keep picking different angles to rotate each square. But those aren't angles from a fixed starting position, but rather from the position of the last rotation. This results in a bunch of squares at seemingly random orientations.
Try making your loop something like:
for _ in range(20): # value is not used, it is not an angle, but the number of squares
brandon.left(18) # pick some fixed angle to turn by
drawsq(brandon, 50)