An example of your existing code would help us know exactly how you are currently using the <<linkappend>> macros in your Passage, but I will assume its something like the following.
Some long text...
<<linkreplace "Choice 1">>Long replacement text for choice 1...<</linkreplace>>
<<linkreplace "Choice 2">>Long replacement text for choice 2...<</linkreplace>>
<<linkreplace "Choice 3">>Long replacement text for choice 3...<</linkreplace>>
[[Continue|Other]]
You will need to use story variables to track which link(s) were selected, and then use the current value of the same story varaibles to control what is displayed next time the Passage is visited.
1. Initialise your story variables within your project's StoryInit special passage.
<<set $choice1 to false>>
<<set $choice2 to false>>
<<set $choice3 to false>>
(note: the above variables can be named whatever makes sense to you and your project.)
2. Update the Passage to check the current value of the story variables.
If your actual code looks something like my 1st example and you want to keep using the <<linkreplace>> macro to reveal the hidden text then you could do somthing like the following.
Some long text...
<<if $choice1>>
\Long replacement text for choice 1...
\<<else>>
\<<linkreplace "Choice 1">>Long replacement text for choice 1...<<set $choice1 to true>><</linkreplace>>
\<</if>>
<<if $choice2>>
\Long replacement text for choice 2...
\<<else>>
\<<linkreplace "Choice 2">>Long replacement text for choice 2...<<set $choice2 to true>><</linkreplace>>
\<</if>>
<<if $choice3>>
\Long replacement text for choice 3...
\<<else>>
\<<linkreplace "Choice 3">>Long replacement text for choice 3...<<set $choice3 to true>><</linkreplace>>
\<</if>>
[[Continue|Other]]
... on the other hand if your actual code is different to my 1st example and you want help converting it then you will need to supply an example of it.