subtract first row from 2nd and 4th rows then swap 2nd and 3rd rows and divide first row by 3
subtract double 2nd row from first row and subtract 2nd row from 4th row and divide 3rd row by 2
add 6 times 3rd row to first row and subtract 3 times 3rd row to 2nd row.
I'm not really sure where your algorithms could be going wrong. I just do these from left to right, getting 0s in all but one row and a one in the non-zero row then moving to the next column.