Any 8-byte writing, even all bytes are set to 0xFF, is a real write operation to the 8-byte a program flash block. As a result, the ‘invisible’ check bit of that program flash block will be updated. Then the next writing will fail because of the updated check bit if having no erasing. The check bit will be reset only in the erase.
All source code of the release packages for VEGAboard are available. Especially, the SDK release package includes all source code of examples that run on VEGAboard. The c code of drivers of RV32M1 are under rv32m1_sdk_riscv\devices\RV32M1\drivers folder, the registers definition and interrupt handlers are under rv32m1_sdk_riscv\devices\RV32M1. The startup code can be found under rv32m1_sdk_riscv\devices\RV32M1\gcc.
For example, the LPUART issue you met can reference the fsl_lpuart.h .c files under rv32m1_sdk_riscv\devices\RV32M1\drivers.
Suggest to install eclipse and import the examples to view the source code structure in the eclipse, then you can well understand the structure of SDK.