I have been playing arould with lzop and Compress::LZO this morning after seeing your post. I don't believe the file format for lzop archives is compatable with Compress::LZO. Decompression is failing because lzop tacks on an archive header Compress::LZO does not understand. Compressing data with lzop and Compress::LZO::compress and comparing will show great differences. Getting this to work would require working knowledge of the lzop archive format; you would have to strip the header off. It looks like there are some endian issues as well.
hth,
--rpc