I tried your code with two 24bit images, one interlaced the other not. It worked fine with the non-interlaced image but failed with the same error as yours for the interlaced image.
I was able to get it working by using GD to handle the image:
use GD;
# ...
my $imageFile = "image-24bit-interlaced.png";
my $gdimg = GD::Image->new($imageFile);
my $img = $pdf->image_gd($gdimg);
my $image = $page->gfx;
$image->image($img, 0/mm, 100/mm);
It produced a new PDF with the image placed. I did get a warning though:
libpng warning: Interlace handling should be turned on when using png_read_image
This is a bug in libpng addressed in
this discussion.
PS the module version you are using is very old - if you are planning to use it more you should update to the latest version. If you do you will need to update a few lines of your code also.