XISF does not support signed integers to store pixel sample data, so when you select an integer format to save an XISF file, pixel data will always be stored as unsigned 8, 16 or 32-bit integers.
FITS keywords are always ignored by XISF. They are stored and retrieved as a compatibility layer to support applications and tools that still depend on FITS keywords, but they have no meaning from an XISF decoder's point of view, which acts just as a transmission channel for them.
Structural and reserved FITS keywords, such as BITPIX, NAXIS, BZERO and BSCALE for example, are stored in XISF headers just for informative purposes, but they do not reflect any actual property of the image. These keywords correspond to the image that was initially read in FITS format, but not to the image that has been stored in XISF format. These keywords are always ignored and replaced automatically with valid values in case you decide---heaven forbid---to export the image in FITS format.
So there's no bug here, just the expected behavior.