The mip is used when you need a one-to-one nat between a single internal address to a single external address for ALL ports and in BOTH inbound and outbound directions. Other systems refer to this as static nat.
The vip you are using now is able to isolate ports from a single external address inbound and forward them to different internal ip addresses.
The other way to accomplish this port forwarding in ScreenOS is to use policy based destination nat. This is what I think you would use in your case. Here you create a policy to permit the traffic with the correct ports selected. Then in the advanced tab you will need to add the destination nat address.
For the policy to work you may also need to add proxy arp to your carrier facing interface for the public ip address.
And you will need to create a static route for that address into the interface where you want the destination zone of the connection to exist. Otherwise the route lookup fails. If the public address is used both internal and external then both devices need a policy.
I have a sample configuration for this posted in the Configuration Library forum which also has documentation references.
http://forums.juniper.net/t5/Configuration-Library/Server-published-to-Public-IP-for-both-Trust-amp-Untrust/m-p/98018/highlight/true#M254