- download the source code [to OpenCPN 5.2.4]
- ensure all GTK3 calls are GTK2 compatible
- adjust/recode those that use GTK3 features so they are limited to GTK2 functionality and make GTK2 calls
- re-compile code.
GTK3 & GTK2 APIs differ so you can't replace GTK3 with GTK2 packages (what I suspect you were hoping).
Programs need to be ported which is a load of work (why MATE took a long time to port, as did XFCE etc... let alone GNOME when it ported from GTK2 to GTK3, and now currently in the move to GTK4)
If it wasn't clear - the work that needs to be done is done in the OpenCPN program and OpenGL; ie. the end-user programs that currently call GTK3 - those need the change.
A system can have GTK3 & GTK2 co-existing; eg. my Lubuntu impish system has both Qt5, GTK3 & GTK2 libs installed and they'll happily co-exist.
hexchat
(my chosen IRC client) calls GTK2 libs
liferea
& evolution
(my chosen RSS & MUA) call GTK3 libs
- my Lubuntu LXQt desktop, it's programs eg.
featherpad
call Qt5 libraries, just like your KDE desktop will (many KDE apps also need KF5).
It's the end-user program that needs to be changed. You can install all the GTK2 toolkit/library in your system, but if nothing calls it, it won't be used.
Also note: Scaling doesn't exist in GTK2 so I don't see what you hope to achieve.