My usual method involves having different copies of a single weapon representing the different levels, e.g. Iron Sword, Iron Sword+, etc. Whenever you upgrade your weapon, simply remove the current level and add the level above it.
The downside to this is that it's difficult to imbue weapons with different abilities. Doable, but difficult.