As already explained in comments, your code
Document doc = new Document(pdfDoc);
// Load the image
iText.Kernel.Pdf.Canvas.PdfCanvas canvas = new iText.Kernel.Pdf.Canvas.PdfCanvas(pdfDoc.GetFirstPage(), true);
iText.Layout.Element.Image image = new iText.Layout.Element.Image(ImageDataFactory.Create(imagePath));
...
// Add the image to the document
doc.Add(image);
adds the image to the static page content. Compare this answer: Changing page content of a signed document is always considered disallowed.
What you may do as long as the signature certification level is annotations, form fill-in, and digital signatures allowed, though, is adding a watermark annotation. You can do so like this:
// Load the image
ImageData imageData = ImageDataFactory.Create(imagePath);
PdfFormXObject appearanceXObject = new PdfFormXObject(new Rectangle(width, height));
PdfCanvas canvas = new PdfCanvas(appearanceXObject, pdfDoc);
canvas.AddImageAt(imageData, 0, 0, false);
PdfDictionary watermarkDictionary = new PdfDictionary();
watermarkDictionary.Put(PdfName.Type, PdfName.Annot);
watermarkDictionary.Put(PdfName.Subtype, PdfName.Watermark);
PdfAnnotation watermark = PdfAnnotation.MakeAnnotation(watermarkDictionary);
watermark.SetRectangle(new PdfArray(new[] { x, y, x + width, y + height }));
watermark.SetFlags(PdfAnnotation.LOCKED | PdfAnnotation.LOCKED_CONTENTS | PdfAnnotation.PRINT);
watermark.SetNormalAppearance(appearanceXObject.GetPdfObject());
var page = pdfDoc.GetFirstPage();
page.AddAnnotation(watermark);
(WatermarkSigned test WatermarkImproved
)