you write your blocks into the chunkprimer after you have copied it to the chunk, you call setBlocksInChunkIsland to late.
Put it directly after "this.setBlocksInChunk ..." or after "this.biomesForGeneration = ..." if you want to manipulate the biomes.
Edit:
I am not shure if the world object has the biome information you need at this point, use biomesForGeneration instead, you have to calculate the coordinates manually since biomesForGeneration is an one dimensional array.
Edit 2:
Also you should not check for the right biome and instead just update the biome information when a block is set.
[...]
primer.setBlockState(k2, l2+upperScale, i3, iblockstate);
if(iblockstate != Blocks.AIR.getDefaultState()) {
this.biomesForGeneration[k2 + i3 * 16] = KCore.instance.FloatingIslands; //i am not shure about the coordinates it could be i3 + k2*16 instead
}
[...]