SQL Server Backup Sizes Differential, Compressed Backup Sizes
Why would a differential backup compressed be almost the size of the
  mdf?


A differential backup contains all extents that have changed since the last FULL backup. Could be that a large percentage of the database has changed since the previous FULL, could be that an index maintenance task has rebuilt/re-organised tables.

Try Paul Randal's How much of the database has changed since the last full backup? script to verify what percentage of the database extents have changed.

If zip compressing a backup has as little effect as using SQL backup compression, good odds a large percentage of the space is taken up with LOB data that can't be compressed further e.g. PDF or image types.