The DNS A record only tells a client to what IP address a name resolves, so what you describe is expected behavior.
There are a few ways to be able to reach different sites on your server. The least complicated one would be to simply inform clients what service lives on what port. In other words a client couldn't just go to "http://site1.lan" or "http://site2.lan", but instead they would need to explicitly tell the web server that they want "http://site1.lan:9500", "http://site2.lan:2729" or any valid combination of names and ports (because the different DNS records point at the same address).
What you probably want instead, is a reverse proxy in front of your sites, that listens on standard ports like 443 (HTTPS) or 80 (HTTP), and then sends the client to the correct port depending on what hostname or path they asked the proxy for.
Personally I like using HAProxy for these things, but according to my search engine you could probably do it natively in IIS using URL Rewrite v2 and Application Request Routing.