Looking at that file, the seek frames are computed correctly, but the seek table in the header always decodes locations to the start of the file. I don't know much about MP4, but maybe the file isn't meant to be seekable (was it a streamed file?). Most likely repacking the file with a tool like mp4box, ffmpeg or some other mp4 tool will rewrite the seektable and fix the problem.