OK this is an oddity of 3D programs in generally. You've got the 4x4 modelview, that's fine - then you multiple a 3 tuple through it. This means it's using:
A B C d
E F G h
I J K l
m n o p
the bold parts of the 4x4 matrices in the multiplication. The rotations will make up these parts, but the translation actually ends up in M/N/O.
You can't really do a translation easily via matrix multiplication, so multiply your vertex by your matrix - this does the rotate and scale, then ADD m to the vertex.x, n to the vertex.y and o to the vertex.z - this is what happens under the hood in OGL.
It's weird, so it's a bit of a fudge, but generally how most CGI systems work it :) If you look at the matrix you get back with the debugger you should see that it's something like:
1 0 0 0
0 1 0 0
0 0 1 0
x y z 0
where (x,y,z) is your translation- and regardless of it's values it doesn't affect the vertex when you multiply it!! So just add it on afterwards :)