A microkernel is much easier to implement than a monolithic one. Been there, done that. The hard part is to get the messaging done with zero overhead (no copying), but using paging for the mbufs you can get quite far with that.
A microkernel is certainly easier to build than a monolithic kernel, because it does much less. You want to compare a feature-equivalent system, so microkernel + some userland drivers etc vs monolithic kernel.
The monolithic approach is easier because you just call a function in another component or read its data structures. In a microkernel, you need to design interfaces and protocols first.
No, the monolithic approach is definitely not easier for a simple reason: there is hardly any kernel level debugging going on in a microkernel based system because the kernel is small. Everything else is userland, so you can test your new driver as just another user process. This takes the sting out of a very large chunk of frustrating debugging and gives you access to all the userland tools to home in on the bug.
And even better: a crash of your driver does not take down the whole system. So you can just keep on working.
Designing protocols and interfaces is roughly the same in either case, after all you could settle on a very simple set of messages for most interface problems, with open, close, fcntl, read and write you would be able to do the majority of interface tasks.