You cannot do what you have suggested in the question, because you cannot relicense GPL-licensed code and take away one of the freedoms (perpetual/irrevocable license) granted by GPL and replace it by an expiring license. In fact, by trying to re-license the code in the wrong way, you would lose your own rights under GPL to use the upstream libraries linked in your software (GPLv2 Section 4; or GPLv3 Section 8).
There are several ways to monetize OSS but they are a bit more complex than your proposal.
Monetizing OSS always depends on providing something in addition to what the recipients already have (recipient already has the source code, the perpetual license, the rights to modify and distribute).
In the early days of OSS there was no internet. People were lacking basic access to software. You would have to use your modem and your POTS telephone line to connect to a BBS to download software at incredibly slow speeds (2400 to 56.6k bps). Some of you might remember. In these times it was valuable to be able to buy OSS on CDROM, and I think quite a few computer magazines only survived in those times by adding a new CDROM to their printed magazines each month. A fair OSS business model.
Nowadays in large parts of the world, internet access is not a problem, thus the distribution business largely went away. The a common way to make money with OSS today are hosting (SaaS solutions), customization, service and support, and freemium offerings.
There are countless SaaS solutions on the market building on OSS, for example ElasticSearch or OpenStack, and the market is growing with the surge of cloud solutions. So the customers' needs you are fulfilling (for money) is the need for hosting the solution and its maintenance.
In other areas, web hosters are providing WordPress as part of their hosting offerings. The customer pays for a smoothly running managed solution which is always being kept up to date.
With code customizations you tailor OSS to fulfill the exact needs of one (or a few) customers. For example that could be a database connector for a special client database or a tool to analyze data. You would be paid for your development work, timely bug fixes, further modifications, etc. Actually your customer might not even care if the solution is closed or open source (they just want a reliable solution), as they would anyhow not distribute it (it would just aid their competitors). In addition you could offer a help-line via phone or chat. Payment for this 'maintenance, service and support' could be effort-based (by the hour), time-based (monthly fee), user-number-based (number of seats or pay-per-use) or any other useful metric.
A very common way to make money with OSS is freemium solutions, which usually consist of a core of functionality that is based on OSS, and a set of advanced features, which is closed source and only available for money. There are a number of variations of the model, where the free and the paid solution are two separate executables or one solution (with the use of a license key), or where a limited number of software runs (e.g. 5) per month are with all features and if you want more (i.e. 6 or more) you have to pay.
All of the above works in full compliance with the open source licenses. You would be delivering the source code at no cost. The customer has the right to modify (but their own development teams might have too much overhead or cannot be deployed quickly). The customer has the right to distribute (but refrains from that because the solution might include some of their own trade secrets). You just have to identify and provide the added value for which the customer is willing to pay.