Routing a more specific prefix (the /24 in this case) taken from a larger block normally wouldn't be a problem, since a more specific route will win over a less specific one.
However, there may be another challenge here, if the /16 is assigned to your current ISP and you're planning to announce the /24 from that /16 via other networks. In that case, those networks must accept that you're announcing a prefix not assigned to you. I can imagine that your ISP will not allow you to do so if you would want to stop using their services (since they own the aggregated prefix from which you're using a /24), but if you remain a customer but decide to connect your network via them and possible another network, there's no technical drawback.
Possibly you'll need to create valid route objects in a routing database like RIPE or RADB (a bit depending on where you're located) so networks will accept your prefix. Your current ISP will most likely need to coorperate to create these objects. As long as you keep the ISP owning the /16 as an upstream network, even networks not accepting your /24 would still be able to reach you via your ISP.
So to sum it up I don't think there are any unsolvable technical issues here (unless there are more details I'm not aware of), there may be policise or commercial reasons why your ISP says this is not possible.
Your second question is hard to answer without more details on the current network topology. You may consider asking this in a seperate question and providing some additional details there.