Seems alright, CmdPrompt.
Here’s a mockup of what I’m thinking.

The inventory screen would look something like this. This is the assembled and functional weapon. Current and original values are shown. This is so your screen won’t be cluttered with every single mod you’ve done to the internal parts.
"…accepts XXX attachments" is there to signify if the weapon accepts any sort of special external mods. Different types of rails as an example. S. (short) Rail, M. (medium) Rail, L. (long) Rail. Something like that. This would also specify if your weapon accepts any sort of suppressors.
External mods would function just as they do now. Quick and easy (un)installation.
Now, in this mockup I imagine that a few things have been tinkered with. So, on to disassembly and “internal” mods. Disassembling a weapon would give you “Disassembled…” item. You examine it and an alternate set of mods and options show up.
Precision Extended .45 Pistol Barrel (measuring in inches would of course be optimal, rather than just having it say extended). +Damage, +Range, +Recoil. +Accuracy for it being a premium barrel to boot.
Extended Pistol Magazine. More rounds, longer reload time, +Weight. (Oversized magazines could also be a thing. A lot more rounds with a lot more penalties.)
S. Rail Pistol Frame Mod. +Weight? Allows you to attach certain external attachments.
There is of course a ton of room for speculation and improvement here. Everyday gun nuts will likely tell you that you can modify your gun without replacing parts, which is fine. File things down, strengthen a spring… screw it up with lack of skill! Fun to be had. But let’s keep it relatively simple for now.
Finally, the +Taclight is an example indication of what external mods your gun currently has. Activating your gun would let you toggle any such thing, as long as it’s something you can turn on/off.
There’s still a bunch of stuff missing but my brain’s fried.