redefining delay and delaymicros as personal function
Not exactly like that. You will have to manage the different sets of
parameters, i.e. convert the incoming ms into the top and
storageVar that would be appropriate for calling countMicros().
Maybe something like this:



#define delay(ms) mydelay(ms)

void mydelay(unisgned long ms) {
    uint16_t top = some expression;
    uint16_t storageVar = another expression;
    countMicros(top, storageVar);
}


where both expressions are a function of ms.

If the expressions are really simple, you could even put the whole thing
inside a single macro, as in

#define delay(ms) countMicros(some expression, another expression)