When developing a solution aware custom page (canvas-app inside a model-app) for a recent demo I had a hard time publishing my changes.
It seemed random wether my changes were deployed or not after hitting publish. Publishing the entire solution or even the default solution did not work either. Clearing my browser cache and offline data did nothing helpful.
The trick - it seems - is to publish the app containing the custom page. Works every time!