How to mirror a server using iptables?

So, I know that it’s a fairly common problem (albeit mine is a bit different from usual), but I still can’t get it to work. What I want:
Let’s say there’s a remote server (we’ll call it REMOTE), and I want to communicate with it using my VPS (PROXY) from a client with dynamic IP. So when a client reaches out to PROXY:PORT, it looks like it’s talking to PROXY, while in reality VPS relays packets from the client, sends them over to REMOTE, changing the source IP to its own, and then sends whatever REMOTE replies with over to CLIENT, again, substituting the source IP to its own. So it’s kind of like a reverse static NAT.
I opened the respective port in UFW, set net.ipv4.ip_forward = 1, and applied the following iptables rules:

iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination REMOTE:PORT
iptables -t nat -A POSTROUTING -j MASQUERADE

I also tried this instead of the second rule:

iptables -t nat -A POSTROUTING -p tcp -d REMOTE -j SNAT --to-source PROXY

Still, not only does it not work, but also when I try to capture packets going to REMOTE using tcpdump, I get nothing. I can see incoming packets going to PORT, but that’s about it. Am I missing something?

P.S. Listing iptables rules, it has a bunch of UFW-related ones, which I’m hesitant to flush, but really nothing else. I know for sure that I haven’t applied any rules on this server ever before.