Is there any way to prevent the deletion of iMessage history? Can a particular iMessage with someone be archived so I don't accidentally delete it?
No, there's no built-in way to archive iMessage history.
The only way to keep messages is to copy/paste them somewhere and then sync that to all your iCloud devices (or to back them up via your preferred archival method).
I'm not sure if it’s what you're looking for, but there is a Message History setting that prevents messages from being auto-deleted after a certain amount of time.
You can find it in
Settings -> Messages -> Keep Messages. Make sure it's set to Forever instead of 30 Days or 1 Year.
Although not a strict answer to your question, you can archive all messages off-line, including attached images, by using the iExplorer app from Macroplant. It comes in macOS and Windows flavors, too.
Although a bit pricy (US$50) it is an incredible tool for accessing the data on your iOS devices that Apple makes impossible or difficult to do.
[Disclaimer: I'm a happy iExplorer customer. I have no financial stake in the Macroplant.]
If you have Verizon, you can create a my verizon account online with your child's number. From ther you click on my services, send a message. It will show you all of their texts from then on and store them for 3 months. Even if they are deleted off of the phone they will be online. It works best if imessage is turned off, if its on the text may show up out of order.
I dont know what cell service you have, if it's not Verizon, call customer service and see if they have anything like this.