Firstly, IANAL/IANYL. That said, you have in the past written some software which you have taken into and used at your current job. Your employer has paid you to make certain changes to it for them, and they now wish to own the copyright to the resulting program. You wish to retain it, and are curious how to address the problem.
There is the copyright in the original program, and there is the copyright in any changes made since you brought the code into your place of work. The current program is therefore something with two copyright interests in it. Any given copyright can be owned by only one entity, so abandon any idea that you can both own either of them.
You own the copyright in the program you wrote before you started work for your current employer, assuming (if you were at that time in work for someone else) that you did it in your spare time and that your then-contract of employment didn't have one of those nasty we-own-everything-you-do-while-in-our-employ clauses. Depending on the law in your jurisdiction, it is likely that the copyright in the changes made by you in the course of your current job are owned by your employer, as a work-for-hire. So the program as-is is fairly heavily entangled.
You could leave your current job and redo the work you did to bring the program to its current state, but that would be a long way from a cleanroom reimplementation of the program, and your employer could at a later time bring an action asserting that your new changes violated their copyright on your old changes. Essentially, neither of you owns anything useful on its own: you own an old work that you can't bring up-to-date without putting yourself in jeopardy, and they own a shiny new set of changes that only make sense when applied to something they don't own. No wonder they want to sort this out.
The best outcome I can see for you is that everyone keeps what they have now, but you agree to license the original program to them under the terms of the GNU GPL, in exchange for them giving you a copy of the current program under those same terms. They are then free to use the program as they wish within the enterprise without needing to own the copyright; this is well-understood. Any copies they transmit outside the enterprise, including the one they give to you, must be licensed under the GPL. You'll have an unencumbered copy that you can copy / develop / reuse as you would wish, as long as it stays under GPL. You won't be able to relicense the work, but you don't have the right to do that now (see above) so no loss there.
Next-best outcome is that you agree to transfer copyright in the old work to them, in exchange for a copy of the current work under the terms of GNU GPL. That leaves you the same as in the previous example, but they now have the right to relicense the work (though not the copy you have, which is irrevocably under GPL).
I can't see many cheery outcomes apart from those two.