Where/how do you wish to display the thieves guild trophies? If you want them to be relatively "static" trophies in your own house you can make your own display and simply make each of the "real" trophies the enable-parents of "your" trophies. This won't register edits to the original objects.
For your black books, scripted displays can forcibly remove quest objects from the player inventory. This can potentially cause strange behaviour but for stuff like the elders scrolls and the black books it should be fine once you're done needing those items. Here is a script I wrote to display my elder scrolls (it also handles some animations on my display):
Spoiler Scriptname MDHImpButtonAnimationScript extends ObjectReference {Our misleadingly named elder scroll dock script}Actor Property PlayerRef AutoSound Property IrisSound AutoObjectReference Property SoundSource Auto{Play the sound from the origin location of this reference}ObjectReference Property ElderScrollContainer Auto{The reference which will house our precious Elder Scrolls}ObjectReference Property ScrollTrigger Auto{This trigger facilitates scroll retrieval}Book Property ScrollToRemove Auto{The base object scroll we want to place:Vanilla: DA04ElderScrollDawnguard:}Message Property MessageWarning Auto{This will show if the player does not posses the required Elder Scroll}Message Property MessageCaution Auto{This will show the first time the player activates the dock. Warns the player that trifling with Elder Scrolls can has disasterous consequences}bool property isClosed = True Auto hiddenbool FirstTime = TrueAuto State NoScroll Event OnActivate(ObjectReference akActionRef) If !FirstTime If PlayerRef.GetItemCount(ScrollToRemove) == 1 gotoState("HasScroll") IrisSound.Play(SoundSource) PlayAnimation("Open") utility.wait(0.7) PlayerRef.RemoveItem(ScrollToRemove, 1, false, ElderScrollContainer) elseif PlayerRef.GetItemCount(ScrollToRemove) == 0 MessageWarning.Show() endif endif If FirstTime && PlayerRef.GetItemCount(ScrollToRemove) == 1 MessageCaution.Show() FirstTime = False elseif FirstTime && PlayerRef.GetItemCount(ScrollToRemove) == 0 MessageWarning.Show() endif endEventEndStateState HasScroll Event OnActivate(ObjectReference akActionRef) If akActionRef == ScrollTrigger IrisSound.Play(SoundSource) PlayAnimation("Close") utility.wait(1.0) ;wait for animation ElderScrollContainer.RemoveItem(ScrollToRemove, 1, false, PlayerRef) utility.wait(0.2) gotoState("NoScroll") endif else ; do nothing. The player can only interact with the dock directly when it's empty. endEventEndState
It works by checking the player inventory for a specific item, if found it removes that item to a special chest. That chest has a script on it which enables/disables certain displays depending on its contents. The scroll that actually gets displayed in my example is really an activator that will remove your scroll from the special container when you activate it. The script on the chest then handles updating the display.
It's a bit complicated but I wrote these scripts to handle many many different objects and displays, and to be modular if/when I need them to be.