Quote: do not say " scrap it and start again ", i have spent a lot of money developing what i ended up with
Sorry, but ... "scrap it and start again" is the best approach.
VB6 is a very old, pretty-much-dead language and it doesn't translate well into any modern framework. It can be done, there are even tools to do it, but what you end up with is worse than the original, not better - and much harder to maintain because it's old code mangled into a new framework.
Seriously, your best option is to use the existing app as a specification and write a new app to that using a modern language and framework. I know, I know - that isn't what you wanted to hear: but translating code doesn't produce something magically "good", particularly if you start with something that '"because of the way it has been set up" i cannot add anything further to it' which almost certainly means it's been hacked to death to get it to it's current state already.
One of the hardest jobs we have to do as developers is to throw away code because it just isn't fit for purpose anymore, even if we have invested significant time, effort, and money into it. But we do have to do it, just like when a car is fifteen years old you have to decide when it's worth fixing or you would be better of scrapping it and buying a replacement ...