Editing references and values on PCB without breaking link to schematic

I have a reasonably busy board, which I will hand assemble. This means that I’d like to have component references, and where possible, values visible on the silkscreen, but there’s quite little space for it. I solved this by careful editing of references and values to show just enough for assembly (for example, in a certain region of the PCB just a part of the reference is enough to uniquely identify a component, and a value 14k 1% doesn’t need the 1% on the silkscreen, as 14k is not in the E12 series anyway).

After I did that, I decided to add a test point, which I added to the schematic, exported the netlist and imported it into PCBNew. Only then did I realize that the component reference on the silkscreen is not just a piece of text, but it is the actual reference used to bind the component to the schematic. This of course means that my PCB was completely messed up by the import, as now I had some references on the board that didn’t exist in the schematic (since I had edited them), and on the other hand, the corresponding footprints were imported as new.

This immediate problem was of course solved by going back, and redoing the import with the “timestamp” option. However, this of course reset all the references and values to their values in the schematic, so now my silkscreen is again unreadable in many places…

So, is there any way to edit the references and values on the silkscreen, such that the connection back to the schematic would stay intact?

Question: How important is it for you to have the reference there on the board for hand assembly?
See those threads for how others solve this ‘problem’:

There was a thread here from a regular who wrote a script that was able to adjust the reference values in pcbnew from their position on the pcb (similar to what eeschema does in regards to numbering vs position on the schematic sheet) and this was then back-ex/imported into eeschema, so the link stayed intact.
Might not help you in it’s current form, but maybe you can reuse some of the code?

PS: why do you need reference AND value in silkscreen on the board? Isn’t that a bit overkill?