Is there some reason not to use FindInstance
from the outset?
FindInstance[canonicalEquations == 0,
Variables[canonicalEquations]]
(* Out[298]= {{a[1, 1] -> -1, a[1, 2] -> 5, a[1, 3] -> 11/4,
a[1, 4] -> 53/4, a[2, 1] -> -1, a[2, 2] -> 1, a[2, 3] -> 7/4,
a[2, 4] -> 41/4}} *)