If you want to change nexthop for dynamic routes then it can be done with routing filters.
But from your description it looks like you want to reroute the traffic not change the route. In this case use mangle and routing marks. See policy routing examples in wiki.
What I have discovered is: If you override the nexthop in a filter on the incoming it will not be reflected that way if you not also have a filter to the respective outgoing. This is unintuitive i’d say but once you realise this it gets a bit clearer in the RouterOS Space. (This is not Currently doable in OSPF as ospf only have inFilters currently But BGP works)
This Could be a BUG or just how RouterOS is supposed to work so once I sorted it through i accepted the fact.