@acer Thanks for the speedy response!
I've updated my badly named variables as yours make more sense.
Also, this NullSpace of the characteristic equation is just moving the RHS of the equations I had over to the left, so I tried that with my equations:
eigsolve := [(eigscale - evals*evecs) = 0, (eigscale - evals*evecs) = 0, (eigscale - evals*evecs) = 0];
and now the solve function works as it should!
>> [e11 = e11, e12 = 4.730757864*e11, e13 = 1.174206729*e11]
I'm not too sure why it wouldn't work before as all I've done is simplify them through subtraction.
Anyway it was a pain to reassign the components back into evecs, even when using assign it seemed to not want to replace e11,e12 & e13 even though when I print e12 it would resolve to 4.730757864*e11. For this reason I've decided your solution is much more elegant as it doesnt require any nasty local variables. However I'm glad I sort of solved it how I was hoping to as I think it will be a more general solution in future.
Or maybe I just need to learn how to maniupulate my forms so that these magic subspace functions will always do the trick!