Right now you're doing a little too much multiplying.. You should change line 19 to c = Multiply(c, t1);(the idea is that c = c * rz * t1 and with matrices order of multiplication is important)
If the matrix is correct multiplying A by it should return A. You may start from B to make your code very very slightly faster, but I think that if the matrix isn't correct it will be easier to understand what's wrong with it.
The above code is close. But I can't explain why though. There is one vertex that doesn't move, but the rest do and it seems that they rotate around it. When I start the program and supply '0' as a rotation angle i get a striaght line, that is the only thing that is wrong with it, i think.