Java MVC Main Method and Controller
Just looking at you Main class, you notice some strange things.

Passing an already known instance:

ChessBoard chessBoardView = new ChessBoard(myController);
View myView = new View(myController, chessBoardView);


The ChessBoard holds (normally) an instance of Controller. The View hold an instance of ChessBoard who holds the instance of Controller. So passing the controller to View is not needed, if you need the controller in the View just call chessboard.getController();.

Beans who have each other instances:

Controller myController = new Controller();
View myView = new View(myController, chessBoardView);
myController.addView(myView);


It's a strange setup, but if used for the Observer-observable pattern I can see your logic. But still, it's at the wrong place. If you need this, pass the instance of view to the controller in the constructor of view.

public View (ChessBoard board) {
    this.board = board;
    board.getController().addView(this);
}


Attention, you will have a leaking constructor warning with this.

Method naming:

I see you use in the Controller addModel, addView,... When you use addXxx this should mean that you add this to a Collection. If it's not adding to a Collection use setXxx so everyone who reads your code knows it.

Why is this important: 


With set you know you lose the previous instance.
With add you normally hold your previous instance.


MVC:

Your pattern is almost correct except the fact that your View holds ChessBoard, as I can see from the name of the variable is also a view. If your ChessBoardModel is changed, it should notify the View itself and not the ChessBoard itself.