A、C、D,M、m受到水平方向受到恒力和弹簧的弹力的作用,恒力先大于弹力,后小于弹力,M、m分别向左和向右先做加速运动后做减速运动,F1与F2分别对M、m做正功,弹簧不断伸长,当弹簧有最大伸长时,m、M的速度均为零,之后弹簧收缩,F1与F2分别对M、m做负功,所以系统的机械能先增大后减小,当弹簧有最大伸长时,m、M的速度为零,系统具有机械能最大.当弹簧弹力的大小与拉力F1、F2的大小相等时,m、M的速度最大,则其动能最大.故A错误,CD正确.
B、由于F1与F2等大反向,系统所受的合外力为零,则系统的动量守恒.故B正确.
故选BCD