Strange, I just tried to reproduce the behaviour you are seeing and I can't; for me it looks like LR is doing the correct things.
Here's what I did:
1. Apply structured keyword (animals | laboratory animal | test animal) to a test image (raw with xmp) in PM
2. Open LR, apply changes from disk, verify keywords set (test animal < laboratory animal)
3. Add keyword testing 123 in LR
4. Quit LR, verify keywords in PM (animals, laboratory animal, test animal, testing 123, animals | laboratory animal | test animal)
5. Check xmp: matches keywords shown in PM – and are as expected
6. Add structured keyword (animals | pets | cat | kitten) in PM
7. Keywords in PM now: animals, laboratory animal, test animal, testing 123, animals | laboratory animal | test animal, animals | pets | cat | kitten
8. Open LR, apply changes from disk, verify keywords set (kitten, test animal < laboratory animal, testing 123)
9. Add keyword testing 345 in LR
10. Quit LR, verify keywords in PM (animals, cat, kitten, laboratory animal, pets, test animal, testing 123, testing 345, animals | laboratory animal | test animal, animals | pets | cat | kitten)
11. Check xmp: matches keywords shown in PM – and are as expected
So, I can't reproduce your problem... Could you provide a step by step similar to mine that reproduces the issue you're having?